- 23 Aug, 2004 40 commits
-
-
Anton Blanchard authored
Fix another gcc 3.5 compile issue, this time the default_policy prototype was not marked static whereas the definition was. There is no need for the prototype, so remove it. Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Rik van Riel authored
Since various gnupg users have indicated that gpg wants to mlock 32kB of memory, I created the patch below that increases the default mlock ulimit to 32kB. This is no security problem because it's trivial for processes to lock way more memory than this in page tables, network buffers, etc. In fact, since this patch allows gnupg to mlock to prevent passphrase data from being swapped out, the security people will probably like it ;) This gets the new per-user mlock limit a bit more testing, too. Signed-off-by: Rik van Riel <riel@redhat.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Rik van Riel authored
Here is the last agreed-on patch that lets normal users mlock pages up to their rlimit. This patch addresses all the issues brought up by Chris and Andrea. From: Chris Wright <chrisw@osdl.org> Couple more nits. The default lockable amount is one page now (first patch is was 0). Why don't we keep it as 0, with the CAP_IPC_LOCK overrides in place? That way nothing is changed from user perspective, and the rest of the policy can be done by userspace as it should. This patch breaks in one scenario. When ulimit == 0, process has CAP_IPC_LOCK, and does SHM_LOCK. The subsequent unlock or destroy will corrupt the locked_shm count. It's also inconsistent in handling user_can_mlock/CAP_IPC_LOCK interaction betwen shm_lock and shm_hugetlb. SHM_HUGETLB can now only be done by the shm_group or CAP_IPC_LOCK. Not any can_do_mlock() user. Double check of can_do_mlock isn't needed in SHM_LOCK path. Interface names user_can_mlock and user_substract_mlock could be better. Incremental update below. Ran some simple sanity tests on this plus my patch below and didn't find any problems. * Make default RLIM_MEMLOCK limit 0. * Move CAP_IPC_LOCK check into user_can_mlock to be consistent and fix but with ulimit == 0 && CAP_IPC_LOCK with SHM_LOCK. * Allow can_do_mlock() user to try SHM_HUGETLB setup. * Remove unecessary extra can_do_mlock() test in shmem_lock(). * Rename user_can_mlock to user_shm_lock and user_subtract_mlock to user_shm_unlock. * Use user instead of current->user to fit in 80 cols on SHM_LOCK. Signed-off-by: Rik van Riel <riel@redhat.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Ram Pai authored
Here is a consolidated readahead patch that takes care of the performance regression seen with multiple threaded writes to the same file descriptor. The patch does the following: 1. Instead of calculating the average count of sequential access in the read patterns, it calculates the average amount of hits in the current window. 2. This average is used to guide the size of the next current window. 3. Since the field serial_cnt in the ra structure does not make sense with the introduction of the new logic, I have renamed that field as currnt_wnd_hit. This patch will help the read patterns that are not neccessarily sequential but have sufficient locality. However it may regress random workload. Results: 1. Berkley Shands has reported great performance with this patch. 2. iozone showed negligible effect on various read patterns. 3. DSS workload saw neglible change. 4. Sysbench saw a small improvement. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Ram Pai authored
Ok I have enclosed the results for the recent readahead fixes. The summary is: there is no significant improvement or decrease in performance of (DSS workload, iozone, sysbench) The increase or decrease is in the margin of errors. I have enclosed a patch that partially backs off Miklos's fix. Shane Shrybman correctly pointed out that the real fix is to set ra->average value to max/2 when we move from readahead-off mode to readahead-on mode. The other part of Miklos's fix becomes irrelevent. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Arjan van de Ven authored
LOOP_CHANGE_FD is an ULONG compatible ioctl, basically same calling convention as LOOP_SET_FD; mark it as such in the compat ioctl list. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Randy Dunlap authored
'make buildcheck' indicates that these functions should not be in an __exit section, so undo that. Yes, they can be called from .text. Signed-off-by: Randy Dunlap <rddunlap@osdl.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Zou Nanhai authored
Here is a patch to fix a problem of might-sleep-in-atomic which David Mosberger mentioned at http://www.gelato.unsw.edu.au/linux-ia64/0407/10526.html On IA64 platform, a might-sleep-in-atomic warning raise while dumping a multi-thread process. That is because elf_core_dump holds the tasklist_lock before the kernel does a access_process_vm in elf_core_copy_task_regs, This patch detached elf_core_copy_task_regs function from inside tasklist_lock to remove the warning. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Thierry Vignaud authored
fix compiling oldconfig with gcc-3.5: Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Iñaky Pérez-González authored
This patch renames fs/aio.c:'struct timeout' to 'struct aio_timeout'. The rationale behind this decision is this type is used only inside the aforementioned aio.c file and being the type name very generic, it is likely to cause namespace conflicts in the future. I actually found it while working on an extended schedule_timeout()- like API used by robust mutexes but usable by anyone. There I declared a 'struct timeout' and aio.c complained about it. I could have also renamed the struct for the schedule_timeout() like API, but being the aio.c one specific to the file, I thought it might make more sense to rename the later. Signed-off-by: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Matt Mackall authored
If netpoll attempts to use a device without polling support, it will oops when shutting down. This adds a check that we've actually attached to a device. Signed-off-by: Matt Mackall <mpm@selenic.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Andrew Morton authored
Remove now-unneeded open-coded unlikelies around IS_ERR(). Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Andrew Morton authored
It seems fair to assume that it is always unlikely that IS_ERR will return true. This patch changes the gcc-3.4-generated kernel text by ~500 bytes (less) so it's fair to assume that the compiler is indeed propagating unlikeliness out of inline functions. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Badari Pulavarty authored
I found one more accounting inconsistency with dio_pages_in_io. This is a day-one bug and I started hitting it on latest -mm due to the recent changes to dio_pages_in_io calculations to be exact. If the file is badly fragmented (no contiguous blocks at all), and the user buffer is not page aligned - we need to create IO for each disk block with 2 pages. (bio with 2 vecs). dio_bio_add_page() should not decrement dio_pages_in_io for every add page. It should only decrement, it only if its done with that page and moving on to next page. (since dio_pages_in_io represent how many actual pages we are operating on). Here is the patch to fix this accounting. Without this patch, we will hit BUG() in dio_new_bio() with O_DIRECT on filesystems. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Badari Pulavarty authored
We're being lazy when calculating the size of the needed BIO, allocating two extra pages to cope with funny alignments. Change that to be exact, thus allocating smaller BIOs someties. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Corey Minyard authored
Some people found some bugs and some missing functions in the IPMI driver, so I have patching things together for the next release. The attached patch moves to version 33 of the driver and contains: * SMBIOS table support for specifying register spacing. This allows non-contiguous registers to be specified and some machines do this. * ACPI table updates to support all the possible register sizes and bit offsets into the registers for the IPMI information. * Support for command line parameters to specify register spacing, sizes, and bit offsets. * Support for power control with IPMI. This allows a halt to power down a machine with IPMI. * A fix for a race condition with interrupts enabled on an SMP machine. A lock was released then reclaimed, but there was code later that assumed that had not happened. * A fix for protecting the driver against bad responses from the controller chip. In the past, the driver had assumed that the controller chip would not give it bad data. This has turned out to be a bad assumption * ACPI interrupt handlers now return a return value, adjust accordingly. Thank you to all the people who helped me with this. Signed-off-by: Corey Minyard <minyard@acm.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Corey Minyard authored
Makes the IPMI watchdog more consistent with the other watchdog drivers. I have tested this and it seems to work correctly. I also added docs for the interface change. - support disabling watchdog by writing 'V' to device. - unify printk() - use atomic bit operations on ipmi_wdog_open Signed-off-by: Arkadiusz Miskiewicz <arekm@pld-linux.org> Signed-off-by: Corey Minyard <minyard@acm.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Paul Clements authored
Here's a patch to fix a race condition in nbd that was causing struct request corruption (requests were being freed while still in use). This patch improves on the previous one, which admittedly was a bit dodgy, using struct request's ref_count field (I should have listened to Jens in the first place :). This should fix all the corner cases related to struct request usage/freeing in nbd. My stress tests do a lot better with this patch applied. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
William Lee Irwin III authored
Nuke the real undefined symbol in sparc32. This is the only real hit from ldchk on sparc32; the rest are all btfixup-related (Sam Ravnborg and I are working on addressing that). Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Sean Neakums authored
This patch kills two printks from UDF that announce its registration and unregistration. Since one can determine which filesystems are present by examining /proc/filesystems, these messages strike me as noise. Signed-off-by: Sean Neakums <sneakums@zork.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Janice M. Girouard authored
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Jens Axboe authored
A few fixes related to cdrom media event notification. These are from Alexander Kern <alex.kern@gmx.de> Signed-off-by: Jens Axboe <axboe@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Neil Brown authored
Fix a problem wherein device nodes on a ro-exported mount cannot be opened read/write. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Neil Brown authored
To purge an nfsd-authentication cache, we set the flush time to later than last-refresh time in the cache and call cache_flush. The easiest way to find 'later than last-refresh' is 'now+1'. This has two problems. 1/ if the time-of-day clock has gone bacwards, some entries might not be purged 2/ if a new entry is added in the same second as cache_purge ran, it will get ignored. To resolve these issues, we set the flushtime to the maximum possible time before calling cache_flush, and then set it back to the minimum time afterwards. Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Neil Brown authored
More fall-out from the change to allow multi-page replies to readdir requests. Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Neil Brown authored
Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Neil Brown authored
This is only used by nfsd to save one kmalloc, and the code is not always kept up-to-date with dentry_open, so just get rid of it. Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Bruce Allan authored
Bruce Allan says: The user-specified fsid= export option still doesn't work after the changes made 5 months ago. Below is a patch against 2.6.7 through the recent 2.6.8-rc2-bk13. Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Neil Brown authored
Server-side support for the limited portion of the NFSv4 ACL protocol necessary to support POSIX ACLs. Will return an error on an attempt to set any ACL that doesn't map to a POSIX ACL. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Neil Brown authored
Code to translate between Linux's POSIX ACLs and NFSv4 ACLs. Since NFSv4 ACLs are fundamentally richer, we are able to translate any POSIX ACL to NFSv4, but can only map NFSv4 ACLs that follow a certain format; see http://www.citi.umich.edu/u/marius/draft-eriksen-nfsv4-acl-02.txt for details of the mapping. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Neil Brown authored
Basic v4 acl definitions, to be used by server ACL implementation Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Neil Brown authored
Fix a leak: when auth_unix_lookup sets CACHE_NEGATIVE, it should also auth_domain_put() the reference it holds in ipm->m_client, since setting CACHE_NEGATIVE prevents ip_map_put() from putting the reference itself. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Neil Brown authored
The interface between the auth_domain and the cache code is messy; the auth_domain code is the only real user of the full 11-argument DefineCacheLookup, and does weird stuff with it (like passing in through one of the arguments a bit of code with a conditional return). We could further parametrize DefineCacheLookup, but I think it's already too complicated. My solution is to just ignore DefineCacheLookup and write the auth_domain_lookup function from scratch. It's actually a pretty short function (much simpler than DefineCacheLookup itself), and it's much easier to read this short function than it is to read some special-cased DefineCacheLookup to verify that it does what it says it does.... Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Neil Brown authored
Presumably anyone creating a new cache entry is going to want a reference on that cache; and indeed every caller of cache_init increments the reference count immediately afterwards. So may as well make cache_init set an initial reference count of 1. Also, note that cache_init initializes the flags; callers don't need to. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Neil Brown authored
nfsd is missing a put_group_info in the auth_null case. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Neil Brown authored
NFSv4 should really run over TCP, and clients will expect that; so there's no point letting people build kernels that support NFSv4 without also supporting server-side TCP. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Andrew Morton authored
In databases it is common to have multiple threads or processes performing O_SYNC writes against different parts of the same file. Our performance at this is poor, because each writer blocks access to the file by waiting on I/O completion while holding i_sem: everything is serialised. The patch improves things by moving the writing and waiting outside i_sem. So other threads can get in and submit their I/O and permit the disk scheduler to optimise the IO patterns better. Also, the O_SYNC writer only writes and waits on the pages which he wrote, rather than writing and waiting on all dirty pages in the file. The reason we haven't been able to do this before is that the required walk of the address_space page lists is easily livelockable without the i_sem serialisation. But in this patch we perform the waiting via a radix-tree walk of the affected pages. This cannot be livelocked. The sync of the inode's metadata is still performed inside i_sem. This is because it is list-based and is hence still livelockable. However it is usually the case that databases are overwriting existing file blocks and there will be no dirty buffers attached to the address_space anyway. The code is careful to ensure that the IO for the pages and the IO for the metadata are nonblockingly scheduled at the same time. This is am improvemtn over the current code, which will issue two separate write-and-wait cycles: one for metadata, one for pages. Note from Suparna: Reworked to use the tagged radix-tree based writeback infrastructure. Signed-off-by: Suparna Bhattacharya <suparna@in.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Suparna Bhattacharya authored
Range based equivalent of filemap_fdatawrite for O_SYNC writers (to go with writepages range support added to mpage_writepages). If both <start> and <end> are zero, then it defaults to writing back all of the mapping's dirty pages. Signed-off-by: Suparna Bhattacharya <suparna@in.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Suparna Bhattacharya authored
Safeguard to make sure we break out of pagevec_lookup_tag loop if we are beyond the specified range. Signed-off-by: Suparna Bhattacharya <suparna@in.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Suparna Bhattacharya authored
wait_on_page_writeback_range shouldn't wait for pages beyond the specified range. Ideally, the radix-tree-lookup could accept an end_index parameter so that it doesn't return the extra pages in the first place, but for now we just add a few extra checks to skip such pages. Signed-off-by: Suparna Bhattacharya <suparna@in.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-