1. 22 5月, 2006 5 次提交
  2. 21 5月, 2006 13 次提交
  3. 20 5月, 2006 3 次提交
  4. 19 5月, 2006 1 次提交
    • D
      [JFFS2] Support new device nodes · aef9ab47
      David Woodhouse 提交于
      Device node major/minor numbers are just stored in the payload of a single
      data node. Just extend that to 4 bytes and use new_encode_dev() for it.
      
      We only use the 4-byte format if we _need_ to, if !old_valid_dev(foo).
      This preserves backwards compatibility with older code as much as
      possible. If we do make devices with major or minor numbers above 255, and
      then mount the file system with the old code, it'll just read the first
      two bytes and get the numbers wrong. If it comes to garbage-collect it,
      it'll then write back those wrong numbers. But that's about the best we
      can expect.
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      aef9ab47
  5. 17 5月, 2006 1 次提交
  6. 16 5月, 2006 11 次提交
    • D
      [JFFS2] Fix section mismatch warnings in JFFS2. · 7d2beb13
      David Brownell 提交于
      Mark certain functions with __init and __exit appropriately.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      7d2beb13
    • F
      [PATCH] jffs2: memory leak in jffs2_scan_medium() · 5b5ffbc1
      Florin Malita 提交于
      If jffs2_scan_eraseblock() fails and the exit path is taken, 's' is not
      being deallocated.
      
      Reported by Coverity, CID: 1258.
      Signed-off-by: NFlorin Malita <fmalita@gmail.com>
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      5b5ffbc1
    • A
      [PATCH] jffs2 warning fixes · 194a61b8
      Andrew Morton 提交于
      fs/jffs2/nodelist.c: In function `check_node_data':
      fs/jffs2/nodelist.c:441: warning: unsigned int format, different type arg (arg 4)
      fs/jffs2/nodelist.c:464: warning: int format, different type arg (arg 5)
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      194a61b8
    • A
      [PATCH] revert "vfs: propagate mnt_flags into do_loopback/vfsmount" · eee391a6
      Andrew Morton 提交于
      Revert commit f6422f17, due to
      
      Valdis.Kletnieks@vt.edu wrote:
      >
      > There seems to have been a bug introduced in this changeset:
      >
      > Am running 2.6.17-rc3-mm1.  When this changeset is applied, 'mount --bind'
      > misbehaves:
      >
      > > # mkdir /foo
      > > # mount -t tmpfs -o rw,nosuid,nodev,noexec,noatime,nodiratime none /foo
      > > # mkdir /foo/bar
      > > # mount --bind /foo/bar /foo
      > > # tail -2 /proc/mounts
      > > none /foo tmpfs rw,nosuid,nodev,noexec,noatime,nodiratime 0 0
      > > none /foo tmpfs rw 0 0
      >
      > Reverting this changeset causes both mounts to have the same options.
      >
      > (Thanks to Stephen Smalley for tracking down the changeset...)
      >
      
      Cc: Herbert Poetzl <herbert@13thfloor.at>
      Cc: Christoph Hellwig <hch@infradead.org>
      Cc: <Valdis.Kletnieks@vt.edu>
      Cc: Stephen Smalley <sds@tycho.nsa.gov>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      eee391a6
    • A
      [PATCH] fs/compat.c: fix 'if (a |= b )' typo · 3835a9bd
      Alexey Dobriyan 提交于
      Mentioned by Mark Armbrust somewhere on Usenet.
      Signed-off-by: NAlexey Dobriyan <adobriyan@gmail.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: Ulrich Drepper <drepper@redhat.com>
      Cc: <stable@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      3835a9bd
    • L
      [PATCH] v9fs: signal handling fixes · 41e5a6ac
      Latchesar Ionkov 提交于
      Multiple races can happen when v9fs is interrupted by a signal and Tflush
      message is sent to the server.  After v9fs sends Tflush it doesn't wait
      until it receives Rflush, and possibly the response of the original
      message.  This behavior may confuse v9fs what fids are allocated by the
      file server.
      
      This patch fixes the races and the fid allocation.
      Signed-off-by: NLatchesar Ionkov <lucho@ionkov.net>
      Cc: Eric Van Hensbergen <ericvh@hera.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      41e5a6ac
    • L
      [PATCH] v9fs: Twalk memory leak · 343f1fe6
      Latchesar Ionkov 提交于
      v9fs leaks memory if the file server responds with Rerror to a Twalk
      message.  The patch fixes the leak.
      Signed-off-by: NLatchesar Ionkov <lucho@ionkov.net>
      Cc: Eric Van Hensbergen <ericvh@hera.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      343f1fe6
    • J
      [PATCH] smbfs: Fix slab corruption in samba error path · 48564e62
      Jan Niehusmann 提交于
      Yesterday, I got the following error with 2.6.16.13 during a file copy from
      a smb filesystem over a wireless link.  I guess there was some error on the
      wireless link, which in turn caused an error condition for the smb
      filesystem.
      
      In the log, smb_file_read reports error=4294966784 (0xfffffe00), which also
      shows up in the slab dumps, and also is -ERESTARTSYS.  Error code 27499
      corresponds to 0x6b6b, so the rq_errno field seems to be the only one being
      set after freeing the slab.
      
      In smb_add_request (which is the only place in smbfs where I found
      ERESTARTSYS), I found the following:
      
              if (!timeleft || signal_pending(current)) {
                      /*
                       * On timeout or on interrupt we want to try and remove the
                       * request from the recvq/xmitq.
                       */
                      smb_lock_server(server);
                      if (!(req->rq_flags & SMB_REQ_RECEIVED)) {
                              list_del_init(&req->rq_queue);
                              smb_rput(req);
                      }
                      smb_unlock_server(server);
              }
      	[...]
              if (signal_pending(current))
                      req->rq_errno = -ERESTARTSYS;
      
      I guess that some codepath like smbiod_flush() caused the request to be
      removed from the queue, and smb_rput(req) be called, without
      SMB_REQ_RECEIVED being set.  This violates an asumption made by the quoted
      code.
      
      Then, the above code calls smb_rput(req) again, the req gets freed, and
      req->rq_errno = -ERESTARTSYS writes into the already freed slab.  As
      list_del_init doesn't cause an error if called multiple times, that does
      cause the observed behaviour (freed slab with rq_errno=-ERESTARTSYS).
      
      If this observation is correct, the following patch should fix it.
      
      I wonder why the smb code uses list_del_init everywhere - using list_del
      instead would catch such situations by poisoning the next and prev
      pointers.
      
      May  4 23:29:21 knautsch kernel: [17180085.456000] ipw2200: Firmware error detected.  Restarting.
      May  4 23:29:21 knautsch kernel: [17180085.456000] ipw2200: Sysfs 'error' log captured.
      May  4 23:33:02 knautsch kernel: [17180306.316000] ipw2200: Firmware error detected.  Restarting.
      May  4 23:33:02 knautsch kernel: [17180306.316000] ipw2200: Sysfs 'error' log already exists.
      May  4 23:33:02 knautsch kernel: [17180306.968000] smb_file_read: //some_file validation failed, error=4294966784
      May  4 23:34:18 knautsch kernel: [17180383.256000] smb_file_read: //some_file validation failed, error=4294966784
      May  4 23:34:18 knautsch kernel: [17180383.284000] SMB connection re-established (-5)
      May  4 23:37:19 knautsch kernel: [17180563.956000] smb_file_read: //some_file validation failed, error=4294966784
      May  4 23:40:09 knautsch kernel: [17180733.636000] smb_file_read: //some_file validation failed, error=4294966784
      May  4 23:40:26 knautsch kernel: [17180750.700000] smb_file_read: //some_file validation failed, error=4294966784
      May  4 23:43:02 knautsch kernel: [17180907.304000] smb_file_read: //some_file validation failed, error=4294966784
      May  4 23:43:08 knautsch kernel: [17180912.324000] smb_file_read: //some_file validation failed, error=4294966784
      May  4 23:43:34 knautsch kernel: [17180938.416000] smb_errno: class Unknown, code 27499 from command 0x6b
      May  4 23:43:34 knautsch kernel: [17180938.416000] Slab corruption: start=c4ebe09c, len=244
      May  4 23:43:34 knautsch kernel: [17180938.416000] Redzone: 0x5a2cf071/0x5a2cf071.
      May  4 23:43:34 knautsch kernel: [17180938.416000] Last user: [<e087b903>](smb_rput+0x53/0x90 [smbfs])
      May  4 23:43:34 knautsch kernel: [17180938.416000] 000: 6b 6b 6b 6b 6b 6b 6b 6b 6a 6b 6b 6b 6b 6b 6b 6b
      May  4 23:43:34 knautsch kernel: [17180938.416000] 0f0: 00 fe ff ff
      May  4 23:43:34 knautsch kernel: [17180938.416000] Next obj: start=c4ebe19c, len=244
      May  4 23:43:34 knautsch kernel: [17180938.416000] Redzone: 0x5a2cf071/0x5a2cf071.
      May  4 23:43:34 knautsch kernel: [17180938.416000] Last user: [<00000000>](_stext+0x3feffde0/0x30)
      May  4 23:43:34 knautsch kernel: [17180938.416000] 000: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
      May  4 23:43:34 knautsch kernel: [17180938.416000] 010: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
      May  4 23:43:34 knautsch kernel: [17180938.460000] SMB connection re-established (-5)
      May  4 23:43:42 knautsch kernel: [17180946.292000] ipw2200: Firmware error detected.  Restarting.
      May  4 23:43:42 knautsch kernel: [17180946.292000] ipw2200: Sysfs 'error' log already exists.
      May  4 23:45:04 knautsch kernel: [17181028.752000] ipw2200: Firmware error detected.  Restarting.
      May  4 23:45:04 knautsch kernel: [17181028.752000] ipw2200: Sysfs 'error' log already exists.
      May  4 23:45:05 knautsch kernel: [17181029.868000] smb_file_read: //some_file validation failed, error=4294966784
      May  4 23:45:36 knautsch kernel: [17181060.984000] smb_errno: class Unknown, code 27499 from command 0x6b
      May  4 23:45:36 knautsch kernel: [17181060.984000] Slab corruption: start=c4ebe09c, len=244
      May  4 23:45:36 knautsch kernel: [17181060.984000] Redzone: 0x5a2cf071/0x5a2cf071.
      May  4 23:45:36 knautsch kernel: [17181060.984000] Last user: [<e087b903>](smb_rput+0x53/0x90 [smbfs])
      May  4 23:45:36 knautsch kernel: [17181060.984000] 000: 6b 6b 6b 6b 6b 6b 6b 6b 6a 6b 6b 6b 6b 6b 6b 6b
      May  4 23:45:36 knautsch kernel: [17181060.984000] 0f0: 00 fe ff ff
      May  4 23:45:36 knautsch kernel: [17181060.984000] Next obj: start=c4ebe19c, len=244
      May  4 23:45:36 knautsch kernel: [17181060.984000] Redzone: 0x5a2cf071/0x5a2cf071.
      May  4 23:45:36 knautsch kernel: [17181060.984000] Last user: [<00000000>](_stext+0x3feffde0/0x30)
      May  4 23:45:36 knautsch kernel: [17181060.984000] 000: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
      May  4 23:45:36 knautsch kernel: [17181060.984000] 010: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
      May  4 23:45:36 knautsch kernel: [17181061.024000] SMB connection re-established (-5)
      May  4 23:46:17 knautsch kernel: [17181102.132000] smb_file_read: //some_file validation failed, error=4294966784
      May  4 23:47:46 knautsch kernel: [17181190.468000] smb_errno: class Unknown, code 27499 from command 0x6b
      May  4 23:47:46 knautsch kernel: [17181190.468000] Slab corruption: start=c4ebe09c, len=244
      May  4 23:47:46 knautsch kernel: [17181190.468000] Redzone: 0x5a2cf071/0x5a2cf071.
      May  4 23:47:46 knautsch kernel: [17181190.468000] Last user: [<e087b903>](smb_rput+0x53/0x90 [smbfs])
      May  4 23:47:46 knautsch kernel: [17181190.468000] 000: 6b 6b 6b 6b 6b 6b 6b 6b 6a 6b 6b 6b 6b 6b 6b 6b
      May  4 23:47:46 knautsch kernel: [17181190.468000] 0f0: 00 fe ff ff
      May  4 23:47:46 knautsch kernel: [17181190.468000] Next obj: start=c4ebe19c, len=244
      May  4 23:47:46 knautsch kernel: [17181190.468000] Redzone: 0x5a2cf071/0x5a2cf071.
      May  4 23:47:46 knautsch kernel: [17181190.468000] Last user: [<00000000>](_stext+0x3feffde0/0x30)
      May  4 23:47:46 knautsch kernel: [17181190.468000] 000: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
      May  4 23:47:46 knautsch kernel: [17181190.468000] 010: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
      May  4 23:47:46 knautsch kernel: [17181190.492000] SMB connection re-established (-5)
      May  4 23:49:20 knautsch kernel: [17181284.828000] smb_file_read: //some_file validation failed, error=4294966784
      May  4 23:49:39 knautsch kernel: [17181303.896000] smb_file_read: //some_file validation failed, error=4294966784
      Signed-off-by: NJan Niehusmann <jan@gondor.com>
      Cc: <stable@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      48564e62
    • O
      [PATCH] smbfs chroot issue (CVE-2006-1864) · 3b7c8108
      Olaf Kirch 提交于
      Mark Moseley reported that a chroot environment on a SMB share can be left
      via "cd ..\\".  Similar to CVE-2006-1863 issue with cifs, this fix is for
      smbfs.
      
      Steven French <sfrench@us.ibm.com> wrote:
      
      Looks fine to me.  This should catch the slash on lookup or equivalent,
      which will be all obvious paths of interest.
      Signed-off-by: NChris Wright <chrisw@sous-sol.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      3b7c8108
    • I
      [PATCH] autofs4: NFY_NONE wait race fix · a5370553
      Ian Kent 提交于
      This patch fixes two problems.
      
      First, the comparison of entries in the waitq.c was incorrect.
      
      Second, the NFY_NONE check was incorrect. The test of whether the dentry
      is mounted if ineffective, for example, if an expire fails then we could
      wait forever on a non existant expire. The bug was identified by Jeff
      Moyer.
      
      The patch changes autofs4 to wait on expires only as this is all that's
      needed.  If there is no existing wait when autofs4_wait is call with a type
      of NFY_NONE it delays until either a wait appears or the the expire flag is
      cleared.
      Signed-off-by: NIan Kent <raven@themaw.net>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      a5370553
    • A
      [PATCH] fs/open.c: unexport sys_openat · 6aff5cb8
      Adrian Bunk 提交于
      Remove the unused EXPORT_SYMBOL_GPL(sys_openat).
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      6aff5cb8
  7. 15 5月, 2006 2 次提交
    • A
      [JFFS2] Fix printk format in some error messages. · 184f5652
      Andrew Morton 提交于
      fs/jffs2/nodelist.c: In function `check_node_data':
      fs/jffs2/nodelist.c:441: warning: unsigned int format, different type arg (arg 4)
      fs/jffs2/nodelist.c:464: warning: int format, different type arg (arg 5)
      
      Modified from Andrew's original fix because while his terminal may indeed
      only have eighty columns, mine only has _TWENTYFOUR_ lines. So the
      cosmetic fluff is perfectly OK out past column 80 where it was -- the
      casual reader doesn't _care_ about anything more than the fact that it
      goes 'if (foo) JFFS2_WARNING...', and there's no point wasting a whole
      line to display the tail end of the printk which nobody actually cares
      about.
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      184f5652
    • D
      [JFFS2] Don't pack on-medium structures, because GCC emits crappy code · 3e68fbb5
      David Woodhouse 提交于
      If we use __attribute__((packed)), GCC will _also_ assume that the
      structures aren't sensibly aligned, and it'll emit code to cope with
      that instead of straight word load/save. This can be _very_ suboptimal
      on architectures like ARM.
      
      Ideally, we want an attribute which just tells GCC not to do any
      padding, without the alignment side-effects. In the absense of that,
      we'll just drop the 'packed' attribute and hope that everything stays as
      it was (which to be fair is fairly much what we expect). And add some
      paranoia checks in the initialisation code, which should be optimised
      away completely in the normal case.
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      3e68fbb5
  8. 14 5月, 2006 1 次提交
    • D
      [JFFS2] Reduce excessive node count for syslog files. · cf5eba53
      David Woodhouse 提交于
      We currently get fairly poor behaviour with files which get many short
      writes, such as system logs. This is because we end up with many tiny
      data nodes, and the rbtree gets massive. None of these nodes are
      actually obsolete, so they are counted as 'clean' space. Eraseblocks can
      be entirely full of these nodes (which are REF_NORMAL instead of
      REF_PRISTINE), and still they count entirely towards 'used_size' and the
      eraseblocks can sit on the clean_list for a long time without being
      picked for GC.
      
      One way to alleviate this in the long term is to account REF_NORMAL
      space separately from REF_PRISTINE space, rather than counting them both
      towards used_size. Then these eraseblocks can be picked for GC and the
      offending nodes will be garbage collected.
      
      The short-term fix, though -- which probably makes sense even if we do
      eventually implement the above -- is to merge these nodes as they're
      written. When we write the last byte in a page, write the _whole_ page.
      This obsoletes the earlier nodes in the page _immediately_ and we don't
      even need to wait for the garbage collection to do it.
      
      Original implementation from Ferenc Havasi <havasi@inf.u-szeged.hu>
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      cf5eba53
  9. 13 5月, 2006 3 次提交