- 22 Sep, 2004 36 commits
-
-
Jeff Mahoney authored
reiserfs_set_xattr() explicitly updates the ctime for the host inode. This works for direct setfacl/setfattr calls, but for the more common case of an inherited default ACL, it breaks. The ACL is inherited in the middle of the new inode creation, before the inode has been hashed. When mark_inode_dirty is called, one of the checks bails out if the inode is unhashed -- but AFTER inode->i_state is updated, so the inode is marked dirty but never placed on any dirty list. Since the inode is never placed on a dirty list, __sync_single_inode from the writeback_inodes() path can never be called on it to clear the dirty flags. Once the inode is hashed and mark_inode_dirty is called for it again, it's too late -- it will bail early assuming (correctly) that the inode is already marked dirty. This ultimately results in I/O stalls that can't be resolved by the fs path, only be the memory allocation path that uses pages directly. The attached patch makes the update of the ctime conditional on the inode being hashed already. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Ryan Cumming authored
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Kirill Korotaev authored
This patch reaaranges inode_lock taking in writeback_inodes(). It narrows down use of inode_lock and removes unneccassary nesting of sb_lock and inode_lock. Instead of holding inode_lock for all the time I moved it around sync_sb_inodes() as it is in all other places. Signed-Off-By: Kirill Korotaev <dev@sw.ru> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Kirill Korotaev authored
This patch fixes race in writeback_inodes() described below: writeback_inodes() { .... sb->s_count++; spin_unlock(&sb_lock); .... spin_lock(&sb_lock); if (__put_super(sb)) <<< X goto restart; } } deactivate_super() { fs->kill_sb(s); kill_block_super(sb) generic_shutdown_super(sb) spin_lock(&sb_lock); list_del(&sb->s_list); <<< Y spin_unlock(&sb_lock); .... put_super(s); spin_lock(&sb_lock); __put_super(sb); <<< Z spin_unlock(&sb_lock); } The problem with it is that writeback_inodes() supposes that if __put_super() returns 0 then no super block was deleted from the list and we can safely traverse sb list further. But as it is obvious from the deactivate_super() it's not actually true. because at point Y we delete super block from the list and drop the lock. We do __put_super() very much later... So we can find sb with poisoned sb->s_list at point X and we won't be the last sb reference holders. The last reference will be dropped in point Z. So in case of the following sequence of execution Y -> X -> Z we'll get an oops after point X in writeback_inodes(). This patch introduces __put_super_and_need_restart() function which allows safe traversing of sb list. I'll send a couple of patches later which remove O(n^2) algos and using this function. Signed-Off-By: Kirill Korotaev <dev@sw.ru> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Anil Keshavamurthy authored
I booted IA64 kernel with "maxcpus=" set to less than the total available processors in the system. Then I tried to online the CPU which was offline due to "maxcpus=" restirction. i.e when I tried to online the CPU which never was online at boot crashed the system. Signed-off-by: Anil Keshavamurthy <anil.s.keshavamurthy@intel.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Stephen Rothwell authored
This patch supplies an device so that ibmvscsic will actually have its probe routine called and so allow ti to actually initialise on (legacy) iSeries machines. It also adds a device for the virtual console (for consistency only at the moment). Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Anton Blanchard authored
There have been reports of problems running UP ppc64 kernels where the kernel would die in the floating point save/restore code. It turns out kernel threads that call exec (and so become user tasks) do not have a valid thread.regs. This means init (pid 1) does not, it also means anything called out of exec_usermodehelper does not. Once that task has forked (eg init), then the thread.regs in the new task is correctly set. On UP do lazy save/restore of floating point regs. The SLES9 init is doing floating point (the debian version of init appears not to). The lack of thread.regs in init combined with the fact that it does floating point leads to our lazy FP save/restore code blowing up. There were other places where this problem exhibited itself in weird and interesting ways. If a task being exec'ed out of a kernel thread used more than 1MB of stack, it would be terminated due to the checks in arch/ppc64/mm/fault.c (looking for a valid thread.regs when extending the stack). We had a test case using the tux webserver that was failing due to this. Since we zero all registers in ELF_PLAT_INIT, I removed the extra memset in start_thread32. Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Nishanth Aravamudan authored
Use msleep_interruptible() instead of schedule_timeout() to guarantee the task delays as expected. Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Nishanth Aravamudan authored
Use msleep_interruptible() instead of schedule_timeout() to guarantee the task delays as expected. Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Andy Fleming authored
The Spurious interrupt assignment for OpenPIC was the constant, OPENPIC_VEC_SPURIOUS plus the offset passed in. Due to bugs in some OpenPICs, the end value needed to be 255 on those systems. However, the constant was then chosen to be 239, because offset on most systems is 16. The 85xx has an offset of 64, however, and so this assignment caused lock-ups during boot. The proposed solution is to declare OPENPIC_VEC_SPURIOUS to be 255, and use that value directly, instead of adding the offset to it. Signed-off-by: Tom Rini <trini@kernel.crashing.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Antonino Daplas authored
This patch arranges driver order in 'driver/video/Makefile' so it closely, but not exactly, follows the previous order in 'drivers/video/fbmem.c'. Signed-off-by: Antonino Daplas <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Antonino Daplas authored
This patch places 'video/i810/' after 'char/' in drivers/Makefile. This order change makes it unnecessary for i810fb to explicitly call agp_intel_init(). This is untested, as I don't have any i810 hardware anymore, but I believe it will work. If it does, the ugly 'early initialization hack' in drivers/char/agp/intel-agp.c:agp_intel_init() can be removed (haven't done it yet). Signed-off-by: Antonino Daplas <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Antonino Daplas authored
Fix fbcon's setup routine so usage is consistent with previous kernels. Ie: video=ofonly and video=xxxfb:off should work. This is done by fb_get_options() returning a nonzero value if: - 'off' option is present - 'ofonly' is present but driver name is not 'offb' All drivers will not proceed with their initialization if return value is nonzero. Signed-off-by: Antonino Daplas <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Antonino Daplas authored
From: Michal Januszewski <spock@gentoo.org> "The latest changes introduced to the fb structs in linux/fb.h make compilation of userspace programs break with: include/linux/fb.h:305: error: field `modelist' has incomplete type This is caused by struct list_head not being seen from userspace." This patch removes struct list_head modelist from struct fb_monspecs and moves it to struct fb_info instead, and for now, enclosed struct fb_monspecs by #ifdef __KERNEL__/#endif. Signed-off-by: Antonino Daplas <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Gerd Knorr authored
This fixes a initialization order bug in bttv, also known as "dark red image bug". Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Li Shaohua authored
Signed-off-by: Li Shaohua <shaohua.li@intel.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Jesse Barnes authored
A few cleanups that probably should have been done a long time ago: o remove test program from mmtimer.h o move name, desc., etc. #defines from mmtimer.h to mmtimer.c o document what mmtimer.c is a little better o some whitespace cleanups for linewrapping and such Signed-off-by: Jesse Barnes <jbarnes@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Seiji Kihara authored
This optimisation data=journal isn't working right, because journalled-data pages are not marked dirty when they are dirty against the journal. Hence I_DIRTY_PAGES doesn't get set hence we can fail to sync the file under some circumstances. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Tony Luck authored
into agluck-lia64.sc.intel.com:/data/home/aegl/BK/linux-ia64-release-2.6.9
-
Roland Dreier authored
Get rid of IO_TOKEN_TO_ADDR() and IO_ADDR_TO_TOKEN() for pSeries EEH; the conversion to tokens is not needed now that we have __iomem annotations to prevent drivers from dereferencing IO addresses. The IO tokens meant that the __raw_ IO accesses wouldn't have worked, and removing the debugging vestiges simplifies the code noticeably. Signed-off-by: Roland Dreier <roland@topspin.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
bk://linux-ntfs.bkbits.net/ntfs-2.6Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
ssh://linux-ntfs@bkbits.net/ntfs-2.6-develAnton Altaparmakov authored
into cantab.net:/home/src/ntfs-2.6-devel
-
Anton Altaparmakov authored
- Minor cleanup of fs/ntfs/inode.c::ntfs_init_locked_inode(). - Bump version number and update Documentation/filesystems/ntfs.txt Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
-
Richard Russon authored
into flatcap.org:/home/flatcap/backup/bk/ntfs-2.6-devel
-
ssh://linux-ntfs@bkbits.net/ntfs-2.6-develRichard Russon authored
into flatcap.org:/home/flatcap/backup/bk/ntfs-2.6-devel
-
Alexander Viro authored
* vortex.c: trivial __iomem annotations * serio_raw.c and tsdev.c: equally trivial __user ones. Signed-off-by: Al Viro <viro@parcelfarce.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Alexander Viro authored
Signed-off-by: Al Viro <viro@parcelfarce.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Alexander Viro authored
Signed-off-by: Al Viro <viro@parcelfarce.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Alexander Viro authored
Signed-off-by: Al Viro <viro@parcelfarce.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Alexander Viro authored
Signed-off-by: Al Viro <viro@parcelfarce.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Alexander Viro authored
Signed-off-by: Al Viro <viro@parcelfarce.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Alexander Viro authored
Signed-off-by: Al Viro <viro@parcelfarce.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Alexander Viro authored
Signed-off-by: Al Viro <viro@parcelfarce.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Alexander Viro authored
* missing le32_to_cpu() in a bunch of printks * on big-endian boxen ext3_error() failed to set EXT3_ERROR_FS in ->s_state (cpu_to_le32() instead of cpu_to_le16()) Signed-off-by: Al Viro <viro@parcelfarce.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Alexander Viro authored
missing fs32_to_cpu() for on-disk ->s_type. Signed-off-by: Al Viro <viro@parcelfarce.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Jens Axboe authored
With the recent bio mapping changes, the caller must pass in the original bio for unmapping again (and they do). So kill this dead code, it could cause problems in situations where someone has used bi_private for something else. Signed-off-by: Jens Axboe <axboe@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
- 21 Sep, 2004 4 commits
-
-
Anton Altaparmakov authored
- Change ntfs_{external_,}attr_find() to return 0 on success, -ENOENT if the attribute is not found, and -EIO on real error. In the case of -ENOENT, the search context is updated to describe the attribute before which the attribute being searched for would need to be inserted if such an action were to be desired and in the case of ntfs_external_attr_find() the search context is also updated to indicate the attribute list entry before which the attribute list entry of the attribute being searched for would need to be inserted if such an action were to be desired. Also make ntfs_find_attr() static and remove its prototype from attrib.h as it is not used anywhere other than attrib.c. Update ntfs_attr_lookup() and all callers of ntfs_{external,}attr_{find,lookup}() for the new return values. - Force use of ntfs_attr_find() in ntfs_attr_lookup() when searching for the attribute list attribute itself. Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
-
David S. Miller authored
into kernel.bkbits.net:/home/davem/net-2.6
-
Richard Russon authored
into flatcap.org:/home/flatcap/backup/bk/ntfs-2.6-devel
-
Anton Altaparmakov authored
ntfs_attr_{{re,}init,get,put}_search_ctx() as well as the type attr_search_context to ntfs_attr_search_ctx. Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
-