1. 15 12月, 2005 1 次提交
    • M
      [SCSI] Convert SCSI mid-layer to scsi_execute_async · 6e68af66
      Mike Christie 提交于
      Add scsi helpers to create really-large-requests and convert
      scsi-ml to scsi_execute_async().
      
      Per Jens's previous comments, I placed this function in scsi_lib.c.
      I made it follow all the queue's limits - I think I did at least :), so
      I removed the warning on the function header.
      
      I think the scsi_execute_* functions should eventually take a request_queue
      and be placed some place where the dm-multipath hw_handler can use them
      if that failover code is going to stay in the kernel. That conversion
      patch will be sent in another mail though.
      Signed-off-by: NMike Christie <michaelc@cs.wisc.edu>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      6e68af66
  2. 13 12月, 2005 2 次提交
  3. 04 12月, 2005 5 次提交
  4. 30 11月, 2005 7 次提交
  5. 29 11月, 2005 9 次提交
  6. 26 11月, 2005 3 次提交
  7. 25 11月, 2005 6 次提交
  8. 24 11月, 2005 2 次提交
  9. 23 11月, 2005 2 次提交
    • D
      [PATCH] Fix hugetlbfs_statfs() reporting of block limits · 74a8a65c
      David Gibson 提交于
      Currently, if a hugetlbfs is mounted without limits (the default), statfs()
      will return -1 for max/free/used blocks.  This does not appear to be in
      line with normal convention: simple_statfs() and shmem_statfs() both return
      0 in similar cases.  Worse, it confuses the translation logic in
      put_compat_statfs(), causing it to return -EOVERFLOW on such a mount.
      
      This patch alters hugetlbfs_statfs() to return 0 for max/free/used blocks
      on a mount without limits.  Note that we need the test in the patch below,
      rather than just using 0 in the sbinfo structure, because the -1 marked in
      the free blocks field is used internally to tell the
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      74a8a65c
    • D
      [PATCH] Fix error handling with put_compat_statfs() · 86e07ce7
      David Gibson 提交于
      In fs/compat.c, whenever put_compat_statfs() returns an error, the
      containing syscall returns -EFAULT.  This is presumably by analogy with the
      non-compat case, where any non-zero code from copy_to_user() should be
      translated into an EFAULT.  However, put_compat_statfs() is also return
      -EOVERFLOW.  The same applies for put_compat_statfs64().
      
      This bug can be observed with a statfs() on a hugetlbfs directory.
      hugetlbfs, when mounted without limits reports available, free and total
      blocks as -1 (itself a bug, another patch coming).  statfs() will
      mysteriously return EFAULT although it's parameters are perfectly valid
      addresses.
      
      This patch causes the compat versions of statfs() and statfs64() to
      correctly propogate the return values from put_compat_statfs() and
      put_compat_statfs64().
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      86e07ce7
  10. 21 11月, 2005 2 次提交
    • A
      [COMPAT] net: SIOCGIFCONF data corruption · 4909724b
      Alexandra Kossovsky 提交于
      From: Alexandra Kossovsky <Alexandra.Kossovsky@oktetlabs.ru>
      
      From http://bugzilla.kernel.org/show_bug.cgi?id=4746
      
      There is user data corruption when using ioctl(SIOCGIFCONF) in 32-bit
      application running amd64 kernel. I do not think that this problem is
      exploitable, but any data corruption may lead to security problems.
      Following code demonstrates the problem
      
      #include <stdint.h>
      #include <stdio.h>
      #include <sys/time.h>
      #include <sys/socket.h>
      #include <net/if.h>
      #include <sys/ioctl.h>
      
      char buf[256];
      
      main()
      {
      	int s = socket(AF_INET, SOCK_DGRAM, 0);
      	struct ifconf req;
      	int i;
      
      	req.ifc_buf = buf;
      	req.ifc_len = 41;
      
      	printf("Result %d\n", ioctl(s, SIOCGIFCONF, &req));
      	printf("Len %d\n", req.ifc_len);
      	for (i = 41; i < 256; i++)
      		if (buf[i] != 0)
      			printf("Byte %d is corrupted\n", i);
      }
      	
      Steps to reproduce:
      Compile the code above into 32-bit elf and run it. You'll get
      Result 0
      Len 32
      Byte 48 is corrupted
      Byte 52 is corrupted
      Byte 53 is corrupted
      Byte 54 is corrupted
      Byte 55 is corrupted
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4909724b
    • A
      [PATCH] Remove compat ioctl semaphore · 9e18fcdd
      Andi Kleen 提交于
      Originally for 2.6.16, but the semaphore causes problems for some
      people so get rid of it now.
      
      It's not needed anymore because the ioctl hash table is never changed
      at run time now.
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      9e18fcdd
  11. 20 11月, 2005 1 次提交