commit 1d6757fbff5bc86e94e59ab0d7bdd7e71351d839 tree 65e75b32e0810961615101cb1f137a060c707c6b parent eba4f669d6ec9be4173bb2619e9b8500b3c36542 author Trond Myklebust Tue, 07 Jun 2005 18:37:01 -0400 committer Linus Torvalds Tue, 07 Jun 2005 15:53:47 -0700 [PATCH] NFS: Fix lookup intent handling We should never apply a lookup intent to anything other than the last path component in an open(), create() or access() call. Introduce the helper nfs_lookup_check_intent() which always returns zero if LOOKUP_CONTINUE or LOOKUP_PARENT are set, and returns the intent flags if we're on the last component of the lookup. By doing so, we fix a bug in open(O_EXCL), where we may end up optimizing away a real lookup of the parent directory. Problem noticed by Linda Dunaphant Signed-off-by: Trond Myklebust Signed-off-by: Linus Torvalds commit eba4f669d6ec9be4173bb2619e9b8500b3c36542 tree 60178d4f2dd4fa1f8985b38fdbe4cd6b99a58c7a parent 93cffffa19960464a52f9c78d9a6150270d23785 parent 66bb8bf8b235ba4d37fda14375827864977c6a3e author Linus Torvalds Tue, 07 Jun 2005 13:41:30 -0700 committer Linus Torvalds Tue, 07 Jun 2005 13:41:30 -0700 Merge of master.kernel.org:/pub/scm/linux/kernel/git/davej/agpgart commit eda9937656e0b9879ca521140fe61cbc9788c398 tree 86c234bdcf33d664ed9881a9282976be9aa8e454 parent 3f5948fa2cbbda1261eec9a39ef3004b3caf73fb author Matthew Dobson Tue, 07 Jun 2005 13:22:05 -0700 committer Linus Torvalds Tue, 07 Jun 2005 13:39:26 -0700 [PATCH] send_IPI_mask_sequence() warning fix In file included from arch/i386/kernel/smp.c:235: include/asm-i386/mach-numaq/mach_ipi.h:4: warning: `send_IPI_mask_sequence' declared inline after its definition Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ad95d6098dd1e94a09d2a1fdf39fd8281fcd8958 tree 527a17f1c54e7f3825440fdd4a85eadfedc1b78c parent eda9937656e0b9879ca521140fe61cbc9788c398 author Eugene Surovegin Tue, 07 Jun 2005 13:22:09 -0700 committer Linus Torvalds Tue, 07 Jun 2005 13:39:26 -0700 [PATCH] ppc32: add 405EP cpu_spec entry Add a definition for PPC 405EP which was lost somehow during 2.4 -> 2.6 transition. Recent change to arch/ppc/kernel/misc.S ("Fix incorrect CPU_FTR fixup usage for unified caches") triggered this bug and 405EP boards don't boot anymore. Signed-off-by: Eugene Surovegin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a86d1f4301fad4ff44c1f614c897000bc574ab2f tree 0eb60f1d27d9ae673285aecaa2769f877dc1a0c4 parent ad95d6098dd1e94a09d2a1fdf39fd8281fcd8958 author Vojtech Pavlik Tue, 07 Jun 2005 13:22:14 -0700 committer Linus Torvalds Tue, 07 Jun 2005 13:39:26 -0700 [PATCH] input: disable scroll feature on AT keyboards This patch disables the scroll feature on AT keyboards by default, because it causes the numbers of mouse devices to shift, breaking user setups. Signed-off-by: Vojtech Pavlik Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 93cffffa19960464a52f9c78d9a6150270d23785 tree 67341f2e824b1812fde8c68bcd1bf42f3672e612 parent a86d1f4301fad4ff44c1f614c897000bc574ab2f author Bjorn Helgaas Tue, 07 Jun 2005 13:22:18 -0700 committer Linus Torvalds Tue, 07 Jun 2005 13:39:26 -0700 [PATCH] PCI: do VIA IRQ fixup always, not just in PIC mode At least some VIA chipsets require the fixup even in IO-APIC mode. This was found and debugged with the patient assistance of Stian Jordet on an Asus CUV266-DLS motherboard. Signed-off-by: Bjorn Helgaas Signed-off-by: Greg Kroah-Hartman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 66bb8bf8b235ba4d37fda14375827864977c6a3e tree 830da5361c73af24b309f6ecc6b87482eb4f1c32 parent 07eee78ea8ba2d0b7b20551c35a3e7dd158d50bb author David Mosberger Mon, 04 Apr 2005 13:29:43 -0700 committer Dave Jones Tue, 07 Jun 2005 12:35:44 -0700 [PATCH] Replace check_bridge_mode() with (bridge->mode & AGSTAT_MODE_3_0). [AGPGART] Replace check_bridge_mode() with (bridge->mode & AGSTAT_MODE_3_0). As mentioned earlier, the current check_bridge_mode() code assumes that AGP bridges are PCI devices. This isn't always true. Definitely not for HP zx1 chipset and the same seems to be the case for SGI's AGP bridge. The patch below fixes the problem by picking up the AGP_MODE_3_0 bit from bridge->mode. I feel like I may be missing something, since I can't see any reason why check_bridge_mode() wasn't doing that in the first place. According to the AGP 3.0 specs, the AGP_MODE_3_0 bit is determined during the hardware reset and cannot be changed, so it seems to me it should be safe to pick it up from bridge->mode. With the patch applied, I can definitely use AGP acceleration both with AGP 2.0 and AGP 3.0 (one with an Nvidia card, the other with an ATI FireGL card). Unless someone spots a problem, please apply this patch so 3d acceleration can work on zx1 boxes again. This makes AGP work again on machines with an AGP bridge that isn't a PCI device. Signed-off-by: David Mosberger-Tang Signed-off-by: Dave Jones commit e29b545cb153f230fbd8ff4c19bc98ab950f9f5c tree cfc8573440b7eb277aaf835842286a36c5e59531 parent d0de98fa16169562bd74913c6c9b3857f9065c79 author Michael Werner Sun, 27 Mar 2005 22:08:42 -0800 committer Dave Jones Tue, 07 Jun 2005 12:35:43 -0700 [PATCH] sgi-agp: fixes a problem with accessing GART memory in sgi_tioca_insert_memory and sgi_tioca_remove_memory This patch fixes a problem with accessing GART memory in sgi_tioca_insert_memory and sgi_tioca_remove_memory. sgi-agp.c | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-) Signed-off-by: Mike Werner Signed-off-by: Dave Jones commit 07eee78ea8ba2d0b7b20551c35a3e7dd158d50bb tree a11d2e705253faaa9779cfd83bb8ca9de311b195 parent e29b545cb153f230fbd8ff4c19bc98ab950f9f5c author Keir Fraser Wed, 30 Mar 2005 13:17:04 -0800 committer Dave Jones Tue, 07 Jun 2005 12:35:43 -0700 [PATCH] AGP fix for Xen VMM When Linux is running on the Xen virtual machine monitor, physical addresses are virtualised and cannot be directly referenced by the AGP GART. This patch fixes the GART driver for Xen by adding a layer of abstraction between physical addresses and 'GART addresses'. Architecture-specific functions are also defined for allocating and freeing the GATT. Xen requires this to ensure that table really is contiguous from the point of view of the GART. These extra interface functions are defined as 'no-ops' for all existing architectures that use the GART driver. Signed-off-by: Keir Fraser Signed-off-by: Andrew Morton Signed-off-by: Dave Jones commit d0de98fa16169562bd74913c6c9b3857f9065c79 tree 5a81c4e8e8ef76addec655f1edbf6abaa09acfb0 parent 3f5948fa2cbbda1261eec9a39ef3004b3caf73fb author Alan Hourihane Tue, 31 May 2005 19:50:49 +0100 committer Dave Jones Tue, 07 Jun 2005 12:35:42 -0700 [PATCH] i945G patch for agpgart Attached is a small patch for i945G support against 2.6.11.11. From: Alan Hourihane Signed-off-by: Dave Jones commit 3f5948fa2cbbda1261eec9a39ef3004b3caf73fb tree b754365f2ca35a8f8d77c92af8a2c9ad056f0325 parent 74262de5d15fe0cab9e6fe75655a502d3c90acca author David Mosberger Mon, 06 Jun 2005 15:50:09 -0700 committer Linus Torvalds Mon, 06 Jun 2005 17:02:03 -0700 [PATCH] Include before testing CONFIG_ACPI I'm not sure why this issue is suddenly showing, but without this patchlet, the zx1 config won't compile anymore (e.g., to see the compilation-error, look for "***" in [1]). [1] http://www.gelato.unsw.edu.au/kerncomp/results//2005-06-06-17-00/zx1_defconfig-log.html Signed-off-by: David Mosberger-Tang Cc: "Brown, Len" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 74262de5d15fe0cab9e6fe75655a502d3c90acca tree fe97a42038552f22215c7d2c13d9c92b7aa3b9bc parent ef130126cc8794f748d7513735ecb4d3d99fa39e author Tom Rini Mon, 06 Jun 2005 15:50:08 -0700 committer Linus Torvalds Mon, 06 Jun 2005 17:02:02 -0700 [PATCH] ppc32: add to On ppc32, uses __user, but doesn't directly include . This adds that in. Without this, glibc will not compile. Signed-off-by: Tom Rini Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ef130126cc8794f748d7513735ecb4d3d99fa39e tree be4d1ba5fbea1d83570d50d8be6ce92a07496d31 parent 5065cc02ccf9212d31ecb7fcd63d734e242e64b1 parent 15def7bfb6902aa2b2bc67059f26d696fb27c235 author Linus Torvalds Mon, 06 Jun 2005 16:59:55 -0700 committer Linus Torvalds Mon, 06 Jun 2005 16:59:55 -0700 Merge of rsync://rsync.kernel.org/pub/scm/linux/kernel/git/davem/tg3-2.6 commit 5065cc02ccf9212d31ecb7fcd63d734e242e64b1 tree 7bd0b973ecc31a932a30ca9ab40797e4190d28da parent 8f5bb0438b86d1a5393176ceeec2836fd469edf8 parent fa04ae5c09f3dfedbc923c2954a9a26a573833f1 author Linus Torvalds Mon, 06 Jun 2005 16:58:53 -0700 committer Linus Torvalds Mon, 06 Jun 2005 16:58:53 -0700 Merge of rsync://rsync.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 commit 15def7bfb6902aa2b2bc67059f26d696fb27c235 tree e3512682907cfa08041c26ea3c41f8e8c80fa64d parent 9ba27794197a18168b99ccecfb7b799f18b64426 author David S. Miller Mon, 06 Jun 2005 15:22:56 -0700 committer David S. Miller Mon, 06 Jun 2005 15:22:56 -0700 [TG3]: Update driver version and release date. Signed-off-by: David S. Miller commit 9ba27794197a18168b99ccecfb7b799f18b64426 tree 1bb183a3fda7b5b8904d1d27663fced5f5035f50 parent 49cabf49abd7676d026a61baabf5aae9337a82be author Michael Chan Mon, 06 Jun 2005 15:16:20 -0700 committer David S. Miller Mon, 06 Jun 2005 15:16:20 -0700 [TG3] Fix link failure in 5701 On some 5701 devices with older bootcode, the LED configuration bits in SRAM may be invalid with value zero. The fix is to check for invalid bits (0) and default to PHY 1 mode. Incorrect LED mode will lead to error in programming the PHY. Thanks to Grant Grundler for debugging the problem. >From Grant: | In May, 2004, tg3 v3.4 changed how MAC_LED_CTRL (0x40c) was getting | programmed and how to determine what to program into LED_CTRL. The new | code trusted NIC_SRAM_DATA_CFG (0x00000b58) to indicate what to write | to LED_CTRL and MII EXT_CTRL registers. On "IOX Core Lan", SRAM was | saying MODE_MAC (0x0) and that doesn't work. Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit 49cabf49abd7676d026a61baabf5aae9337a82be tree 942d26ce4359cec83cae75d5de8765454688bbb3 parent 9beb1d587f690d5b2f9087f8f10c0ff9f6b66886 author Michael Chan Mon, 06 Jun 2005 15:15:17 -0700 committer David S. Miller Mon, 06 Jun 2005 15:15:17 -0700 [TG3]: Add TSO firmware license Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit 9beb1d587f690d5b2f9087f8f10c0ff9f6b66886 tree d9f65f5fd428aaa4af4ca2b75bab67259c4eb91f parent 7cef5677ef3a8084f2588ce0a129dc95d65161f6 author John W. Linville Mon, 06 Jun 2005 15:14:35 -0700 committer David S. Miller Mon, 06 Jun 2005 15:14:35 -0700 [TG3]: Update pci.ids for BCM5752 Signed-off-by: John W. Linville Signed-off-by: David S. Miller commit fa04ae5c09f3dfedbc923c2954a9a26a573833f1 tree df0b22f8d9f8c954cfb6d863dabb89bde430aac4 parent 7cef5677ef3a8084f2588ce0a129dc95d65161f6 author David S. Miller Mon, 06 Jun 2005 15:07:19 -0700 committer David S. Miller Mon, 06 Jun 2005 15:07:19 -0700 [ETHTOOL]: Check correct pointer in ethtool_set_coalesce(). It was checking the "GET" function pointer instead of the "SET" one. Looks like a cut&paste error :-) Signed-off-by: David S. Miller commit 8f5bb0438b86d1a5393176ceeec2836fd469edf8 tree 7b47dcf5d182cc3465cac1c904bdc3aec6e7e8f2 parent d671a1cbf7c7a5c5562106d39eb7f830ae5273ae author Yoshinori Sato Mon, 06 Jun 2005 14:46:32 -0700 committer Linus Torvalds Mon, 06 Jun 2005 14:57:51 -0700 [PATCH] binfmt_flat mmap flag fix Make sure that binfmt_flat passes the correct flags into do_mmap(). nommu's validate_mmap_request() will simple return -EINVAL if we try and pass it a flags value of zero. Signed-off-by: Yoshinori Sato Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d9d29a29669f96903d9950bb881c2a393fd33849 tree d2e12822db98a1bf8feac9f428ba18d867771a85 parent 4b7b9772e4c3d87e649d4c419d2487aacf1235aa author Al Viro Mon, 06 Jun 2005 13:36:11 -0700 committer Linus Torvalds Mon, 06 Jun 2005 14:42:27 -0700 [PATCH] namei fixes (15/19) Getting rid of sloppy logics: a) in do_follow_link() we have the wrong vfsmount dropped if our symlink had been mounted on something. Currently it worls only because we never get such situation (modulo filesystem playing dirty tricks on us). And it obfuscates already convoluted logics... b) same goes for open_namei(). c) in __link_path_walk() we have another "it should never happen" sloppiness - out_dput: there does double-free on underlying vfsmount and leaks the covering one if we hit it just after crossing a mountpoint. Again, wrong vfsmount getting dropped. d) another too-early-mntput() race - in do_follow_mount() we need to postpone conditional mntput(path->mnt) until after dput(path->dentry). Again, this one happens only in it-currently-never-happens-unless-some-fs-plays-dirty scenario... Signed-off-by: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d671a1cbf7c7a5c5562106d39eb7f830ae5273ae tree c27ab7e75684cb70d943c3b2690ebbd62000a921 parent 634ee7017b31e46e28c0bd2cb488213331bfd39a author Al Viro Mon, 06 Jun 2005 13:36:14 -0700 committer Linus Torvalds Mon, 06 Jun 2005 14:42:27 -0700 [PATCH] namei fixes (19/19) __do_follow_link() passes potentially worng vfsmount to touch_atime(). It matters only in (currently impossible) case of symlink mounted on something, but it's trivial to fix and that actually makes more sense. Signed-off-by: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 634ee7017b31e46e28c0bd2cb488213331bfd39a tree 98094ec596bd637bc305b626b3c9482860b13d88 parent 58c465eba4d7ed307c4c7cb3382ba7ee565e8858 author Al Viro Mon, 06 Jun 2005 13:36:13 -0700 committer Linus Torvalds Mon, 06 Jun 2005 14:42:27 -0700 [PATCH] namei fixes (18/19) Cosmetical cleanups - __follow_mount() calls in __link_path_walk() absorbed into do_lookup(). Obviously equivalent transformation. Signed-off-by: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 58c465eba4d7ed307c4c7cb3382ba7ee565e8858 tree f147af3fee122ec5cc054ac78fa30e1490a8acd0 parent 39ca6d49759346d4710c759d443eec8048b27213 author Al Viro Mon, 06 Jun 2005 13:36:13 -0700 committer Linus Torvalds Mon, 06 Jun 2005 14:42:27 -0700 [PATCH] namei fixes (17/19) follow_mount() made void, reordered dput()/mntput() in it. follow_dotdot() switched from struct vfmount ** + struct dentry ** to struct nameidata *; callers updated. Equivalent transformation + fix for too-early-mntput() race. Signed-off-by: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 39ca6d49759346d4710c759d443eec8048b27213 tree 559f7d4f5536d2f155ef4301bb2e4056e7a5e587 parent d9d29a29669f96903d9950bb881c2a393fd33849 author Al Viro Mon, 06 Jun 2005 13:36:12 -0700 committer Linus Torvalds Mon, 06 Jun 2005 14:42:27 -0700 [PATCH] namei fixes (16/19) Conditional mntput() moved into __do_follow_link(). There it collapses with unconditional mntget() on the same sucker, closing another too-early-mntput() race. Signed-off-by: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e13b210f6f7bdc44dfee0a9bbd633a32db0d6333 tree f957ec2fc24f8a9eb84dcffe76341262c1acedf0 parent 463ffb2e9d39c2a3fd8c3c1d4a34e01f2078f972 author Al Viro Mon, 06 Jun 2005 13:36:06 -0700 committer Linus Torvalds Mon, 06 Jun 2005 14:42:26 -0700 [PATCH] namei fixes (10/19) In open_namei(), __follow_down() loop turned into __follow_mount(). Instead of if we are on a mountpoint dentry if O_NOFOLLOW checks fail drop path.dentry drop nd return do equivalent of follow_mount(&path.mnt, &path.dentry) nd->mnt = path.mnt we do if __follow_mount(path) had, indeed, traversed mountpoint /* now both nd->mnt and path.mnt are pinned down */ if O_NOFOLLOW checks fail drop path.dentry drop path.mnt drop nd return mntput(nd->mnt) nd->mnt = path.mnt Now __follow_down() can be folded into follow_down() - no other callers left. We need to reorder dput()/mntput() there - same problem as in follow_mount(). Equivalent transformation + fix for a bug in O_NOFOLLOW handling - we used to get -ELOOP if we had the same fs mounted on /foo and /bar, had something bound on /bar/baz and tried to open /foo/baz with O_NOFOLLOW. And fix of too-early-mntput() race in follow_down() Signed-off-by: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ba7a4c1a76f56c607560f1676680ff491747bdae tree c68f4fd0d5802819eb16dc6c126b2c24f4e09634 parent a15a3f6fc67d910f43098acec6e19d25a37d7cb9 author Al Viro Mon, 06 Jun 2005 13:36:08 -0700 committer Linus Torvalds Mon, 06 Jun 2005 14:42:26 -0700 [PATCH] namei fixes (13/19) In open_namei() exit_dput: we have mntput() done in the wrong order - if nd->mnt != path.mnt we end up doing mntput(nd->mnt); nd->mnt = path.mnt; dput(nd->dentry); mntput(nd->mnt); which drops nd->dentry too late. Fixed by having path.mnt go first. That allows to switch O_NOFOLLOW under if (__follow_mount(...)) back to exit_dput, while we are at it. Fix for early-mntput() race + equivalent transformation. Signed-off-by: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a15a3f6fc67d910f43098acec6e19d25a37d7cb9 tree f00e6a3f505f2e77568695f6f5e2bd4786fcc8ca parent 2f12dbfbb6286c725c283a169f8f05e89a86848b author Al Viro Mon, 06 Jun 2005 13:36:08 -0700 committer Linus Torvalds Mon, 06 Jun 2005 14:42:26 -0700 [PATCH] namei fixes (12/19) In open_namei() we take mntput(nd->mnt);nd->mnt=path.mnt; out of the if (__follow_mount(...)), making it conditional on nd->mnt != path.mnt instead. Then we shift the result downstream. Equivalent transformations. Signed-off-by: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4b7b9772e4c3d87e649d4c419d2487aacf1235aa tree 943427ad8ef5ed51ab0802cf81f5c0e721fb36c6 parent ba7a4c1a76f56c607560f1676680ff491747bdae author Al Viro Mon, 06 Jun 2005 13:36:10 -0700 committer Linus Torvalds Mon, 06 Jun 2005 14:42:26 -0700 [PATCH] namei fixes (14/19) shifted conditional mntput() into do_follow_link() - all callers were doing the same thing. Obviously equivalent transformation. Signed-off-by: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2f12dbfbb6286c725c283a169f8f05e89a86848b tree 5d0a725f71a041955d49146c4837a0df19a015dc parent e13b210f6f7bdc44dfee0a9bbd633a32db0d6333 author Al Viro Mon, 06 Jun 2005 13:36:07 -0700 committer Linus Torvalds Mon, 06 Jun 2005 14:42:26 -0700 [PATCH] namei fixes (11/19) shifted conditional mntput() calls in __link_path_walk() downstream. Obviously equivalent transformation. Signed-off-by: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d671d5e51400aab03c713a16ce3545aa81ad7b1c tree c0ba8f1af3d55320a52024d02be4ab9869a0f6e2 parent cd4e91d3bca8d5527289f5984cf32e9fe6fb8293 author Al Viro Mon, 06 Jun 2005 13:36:04 -0700 committer Linus Torvalds Mon, 06 Jun 2005 14:42:25 -0700 [PATCH] namei fixes (8/19) In open_namei() we never use path.mnt or path.dentry after exit: or ok:. Assignment of path.dentry in case of LAST_BIND is dead code and only obfuscates already convoluted function; assignment of path.mnt after __do_follow_link() can be moved down to the place where we set path.dentry. Obviously equivalent transformations, just to clean the air a bit in that region. Signed-off-by: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit cd4e91d3bca8d5527289f5984cf32e9fe6fb8293 tree 5059fedcd7fb8e8893b8d204e18b5813dfae3449 parent 839d9f93c9f1623fb37234d464d739617879d97e author Al Viro Mon, 06 Jun 2005 13:36:03 -0700 committer Linus Torvalds Mon, 06 Jun 2005 14:42:25 -0700 [PATCH] namei fixes (7/19) The first argument of __do_follow_link() switched to struct path * (__do_follow_link(path->dentry, ...) -> __do_follow_link(path, ...)). All callers have the same calls of mntget() right before and dput()/mntput() right after __do_follow_link(); these calls have been moved inside. Obviously equivalent transformations. Signed-off-by: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 839d9f93c9f1623fb37234d464d739617879d97e tree 1f3e2e6b31d0417a99868d748fae044a5fd0995e parent 1be4a0900be5d2c2fd9cd012e3a153e1ea47b96a author Al Viro Mon, 06 Jun 2005 13:36:02 -0700 committer Linus Torvalds Mon, 06 Jun 2005 14:42:25 -0700 [PATCH] namei fixes (6/19) mntget(path->mnt) in do_follow_link() moved down to right before the __do_follow_link() call and rigth after loop: resp. dput()+mntput() on non-ELOOP branch moved up to right after __do_follow_link() call. resulting loop: mntget(path->mnt); path_release(nd); dput(path->mnt); mntput(path->mnt); replaced with equivalent dput(path->mnt); path_release(nd); Equivalent transformations - the reason why we have that mntget() is that __do_follow_link() can drop a reference to nd->mnt and that's what holds path->mnt. So that call can happen at any point prior to __do_follow_link() touching nd->mnt. The rest is obvious. NOTE: current tree relies on symlinks *never* being mounted on anything. It's not hard to get rid of that assumption (actually, that will come for free later in the series). For now we are just not making the situation worse than it is. Signed-off-by: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 463ffb2e9d39c2a3fd8c3c1d4a34e01f2078f972 tree e5d9b39aca2a546bf2b832c5a2a7066e34f9c1b5 parent d671d5e51400aab03c713a16ce3545aa81ad7b1c author Al Viro Mon, 06 Jun 2005 13:36:05 -0700 committer Linus Torvalds Mon, 06 Jun 2005 14:42:25 -0700 [PATCH] namei fixes (9/19) New helper: __follow_mount(struct path *path). Same as follow_mount(), except that we do *not* do mntput() after the first lookup_mnt(). IOW, original path->mnt stays pinned down. We also take care to do dput() before mntput() in the loop body (follow_mount() also needs that reordering, but that will be done later in the series). The following are equivalent, assuming that path.mnt == x: (1) follow_mount(&path.mnt, &path.dentry) (2) __follow_mount(&path); if (path->mnt != x) mntput(x); (3) if (__follow_mount(&path)) mntput(x); Callers of follow_mount() in __link_path_walk() converted to (2). Equivalent transformation + fix for too-late-mntput() race in __follow_mount() loop. Signed-off-by: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d73ffe16b8baafae6e9249acee6b50c24099c6de tree 321319974be9fcc50f4ec36ccad26b84d4b66b66 parent 4e7506e4dd9e40c189fcbec95d5dbc92f2e5926a author Al Viro Mon, 06 Jun 2005 13:36:01 -0700 committer Linus Torvalds Mon, 06 Jun 2005 14:42:24 -0700 [PATCH] namei fixes (4/19) path.mnt in open_namei() set to mirror nd->mnt. nd->mnt is set in 3 places in that function - path_lookup() in the beginning, __follow_down() loop after do_last: and __do_follow_link() call after do_link:. We set path.mnt to nd->mnt after path_lookup() and __do_follow_link(). In __follow_down() loop we use &path.mnt instead of &nd->mnt and set nd->mnt to path.mnt immediately after that loop. Obviously equivalent transformation. Signed-off-by: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 90ebe5654febe3555a2516d51d3d251226d35fdb tree 576e1b58886329a4ea0c8a4b20416ce0dead0e51 parent 4481e8eea761857367162b0957277d5524fbea63 author Al Viro Mon, 06 Jun 2005 13:35:58 -0700 committer Linus Torvalds Mon, 06 Jun 2005 14:42:24 -0700 [PATCH] namei fixes OK, here comes a patch series that hopefully should close all too-early-mntput() races in fs/namei.c. Entire area is convoluted as hell, so I'm splitting that series into _very_ small chunks. Patches alread in the tree close only (very wide) races in following symlinks (see "busy inodes after umount" thread some time ago). Unfortunately, quite a few narrower races of the same nature were not closed. Hopefully this should take care of all of them. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5f92b3bcec0fa2e2d775b589850097f9dc6b2de2 tree 239ce9af16392b452f651780e85b40b809b8d17a parent 90ebe5654febe3555a2516d51d3d251226d35fdb author Al Viro Mon, 06 Jun 2005 13:35:59 -0700 committer Linus Torvalds Mon, 06 Jun 2005 14:42:24 -0700 [PATCH] namei fixes (2/19) All callers of do_follow_link() do mntget() right before it and dput()+mntput() right after. These calls are moved inside do_follow_link() now. Obviously equivalent transformation. Signed-off-by: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4e7506e4dd9e40c189fcbec95d5dbc92f2e5926a tree 2c13ff8c1ed25fea1511e67a27575824fc56aabe parent 5f92b3bcec0fa2e2d775b589850097f9dc6b2de2 author Al Viro Mon, 06 Jun 2005 13:36:00 -0700 committer Linus Torvalds Mon, 06 Jun 2005 14:42:24 -0700 [PATCH] namei fixes (3/19) Replaced struct dentry *dentry in namei with struct path path. All uses of dentry replaced with path.dentry there. Obviously equivalent transformation. Signed-off-by: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 1be4a0900be5d2c2fd9cd012e3a153e1ea47b96a tree e743475f1ff0e078bda6bc8555bfc5b9fb8b4097 parent d73ffe16b8baafae6e9249acee6b50c24099c6de author Al Viro Mon, 06 Jun 2005 13:36:01 -0700 committer Linus Torvalds Mon, 06 Jun 2005 14:42:24 -0700 [PATCH] namei fixes (5/19) fix for too early mntput() in open_namei() - we pin path.mnt down for the duration of __do_follow_link(). Otherwise we could get the fs where our symlink lived unmounted while we were in __do_follow_link(). That would end up with dentry of symlink staying pinned down through the fs shutdown. Signed-off-by: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a51171816826b074828fa96cb6ef60fc3b13631a tree e3c6f7a9852d45e9fdec75d7c71548ba404625e7 parent 7cef5677ef3a8084f2588ce0a129dc95d65161f6 author Martin Schwidefsky Mon, 06 Jun 2005 13:35:54 -0700 committer Linus Torvalds Mon, 06 Jun 2005 14:42:23 -0700 [PATCH] broken fault_in_pages_readable call in generic_file_buffered_write() fault_in_pages_readable() is being passed an incorrect `end' address, which can result in writes accidentally faulting in pages which will not be affected by the write() call. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8e2894e51d6407e47226a60c0d19bf384642c55a tree 9450c84cb6467d17e13a9def59479216d6af1b29 parent 3399ba5b70eccc918ea4ab2630cac68f5c8ff845 author Yoshinori Sato Mon, 06 Jun 2005 13:35:56 -0700 committer Linus Torvalds Mon, 06 Jun 2005 14:42:23 -0700 [PATCH] h8300 build error fix h8300 was missing a few definitions. Signed-off-by: Yoshinori Sato Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4481e8eea761857367162b0957277d5524fbea63 tree 2b8e0a7ae33b67be3e0a195a11919705e3934865 parent 8e2894e51d6407e47226a60c0d19bf384642c55a author Kumar Gala Mon, 06 Jun 2005 13:35:57 -0700 committer Linus Torvalds Mon, 06 Jun 2005 14:42:23 -0700 [PATCH] ppc32: Fix incorrect CPU_FTR fixup usage for unified caches Runtime feature support for unified caches was testing a userland feature flag (PPC_FEATURE_UNIFIED_CACHE) instead of a cpu feature flag (CPU_FTR_SPLIT_ID_CACHE). Luckily the current defined bit mask for cpu features and userland features do not overlap so this only causes an issue on machines with a unified cache, which is extremely rare on PPC today. Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3399ba5b70eccc918ea4ab2630cac68f5c8ff845 tree 8bc0679962247a65012a2e39d137df4cd9e21d82 parent a51171816826b074828fa96cb6ef60fc3b13631a author Denis Vlasenko Mon, 06 Jun 2005 13:35:55 -0700 committer Linus Torvalds Mon, 06 Jun 2005 14:42:23 -0700 [PATCH] moxa: do not ignore input Stop using tty internal structure in mxser_receive_chars(), use tty_insert_flip_char(tty, ch flag); instead. Without this change driver ignores any rx'ed chars. Run tested. Cc: Alan Cox Cc: Russell King Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds