1. 17 10月, 2006 3 次提交
  2. 16 10月, 2006 2 次提交
  3. 13 10月, 2006 9 次提交
  4. 12 10月, 2006 26 次提交
    • A
      [CIFS] cifs Kconfig: don't select CONNECTOR · 230a0395
      Andrew Morton 提交于
      `select' is a bit obnoxious: the option keeps on coming back
      and it's hard to work out what to do to make it go away again.
      The use of `depends on' is preferred (although it has
      usability problems too..)
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NSteve French <sfrench@us.ibm.com>
      230a0395
    • V
      [PATCH] block layer: ioprio_best function fix · d58cdfb8
      Vasily Tarasov 提交于
      Currently ioprio_best function first checks wethere aioprio or bioprio equals
      IOPRIO_CLASS_NONE (ioprio_valid() macros does that) and if it is so it returns
      bioprio/aioprio appropriately. Thus the next four lines, that set aclass/bclass
      to IOPRIO_CLASS_BE, if aclass/bclass == IOPRIO_CLASS_NONE, are never executed.
      
      The second problem: if aioprio from class IOPRIO_CLASS_NONE and bioprio from
      class IOPRIO_CLASS_IDLE are passed to ioprio_best function, it will return
      IOPRIO_CLASS_IDLE. It means that during __make_request we can merge two
      requests and set the priority of merged request to IDLE, while one of
      the initial requests originates from a process with NONE (default) priority.
      So we can get a situation when a process with default ioprio will experience
      IO starvation, while there is no process from real-time class in the system.
      
      Just removing ioprio_valid check should correct situation.
      Signed-off-by: NVasily Tarasov <vtaras@openvz.org>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      d58cdfb8
    • J
      [PATCH] splice: fix pipe_to_file() ->prepare_write() error path · e6e80f29
      Jens Axboe 提交于
      Don't jump to the unlock+release path, we already did that.
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      e6e80f29
    • S
      acf1a1b1
    • S
      [CIFS] fix typo in previous patch · ddae957d
      Steve French 提交于
      Signed-off-by: NSteve French <sfrench@us.ibm.com>
      ddae957d
    • S
      533f90af
    • S
      [CIFS] Do not need to adjust for Jan/Feb for leap day · 70903ca0
      Steve French 提交于
      calculation in 2100 (year divisible by 100)
      Signed-off-by: NYehuda Sadeh Weinraub <Yehuda.Sadeh@expand.com>
      Signed-off-by: NSteve French <sfrench@us.ibm.com>
      70903ca0
    • A
      [PATCH] misuse of strstr · 4b4fcaa1
      Al Viro 提交于
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      4b4fcaa1
    • A
      [PATCH] fs/bio.c: tweaks · bf02c082
      Andreas Mohr 提交于
      - Calculate a variable in bvec_alloc_bs() only once needed, not earlier
        (bio.o down from 18408 to 18376 Bytes, 32 Bytes saved, probably due to
        data locality improvements).
      
      - Init variable idx to silence a gcc warning which already existed in the
        unmodified original base file (bvec_alloc_bs() handles idx correctly, so
        there's no need for the warning):
      
      	fs/bio.c: In function `bio_alloc_bioset':
      	fs/bio.c:169: warning: `idx' may be used uninitialized in this function
      Signed-off-by: NAndreas Mohr <andi@lisas.de>
      Acked-by: NJens Axboe <axboe@kernel.dk>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      bf02c082
    • D
      [PATCH] VFS: Destroy the dentries contributed by a superblock on unmounting · c636ebdb
      David Howells 提交于
      The attached patch destroys all the dentries attached to a superblock in one go
      by:
      
       (1) Destroying the tree rooted at s_root.
      
       (2) Destroying every entry in the anon list, one at a time.
      
       (3) Each entry in the anon list has its subtree consumed from the leaves
           inwards.
      
      This reduces the amount of work generic_shutdown_super() does, and avoids
      iterating through the dentry_unused list.
      
      Note that locking is almost entirely absent in the shrink_dcache_for_umount*()
      functions added by this patch.  This is because:
      
       (1) at the point the filesystem calls generic_shutdown_super(), it is not
           permitted to further touch the superblock's set of dentries, and nor may
           it remove aliases from inodes;
      
       (2) the dcache memory shrinker now skips dentries that are being unmounted;
           and
      
       (3) the superblock no longer has any external references through which the VFS
           can reach it.
      
      Given these points, the only locking we need to do is when we remove dentries
      from the unused list and the name hashes, which we do a directory's worth at a
      time.
      
      We also don't need to guard against reference counts going to zero unexpectedly
      and removing bits of the tree we're working on as nothing else can call dput().
      
      A cut down version of dentry_iput() has been folded into
      shrink_dcache_for_umount_subtree() function.  Apart from not needing to unlock
      things, it also doesn't need to check for inotify watches.
      
      In this version of the patch, the complaint about a dentry still being in use
      has been expanded from a single BUG_ON() and now gives much more information.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Acked-by: NNeilBrown <neilb@suse.de>
      Acked-by: NIan Kent <raven@themaw.net>
      Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      c636ebdb
    • D
      [PATCH] AUTOFS: Make sure all dentries refs are released before calling kill_anon_super() · 6ce31523
      David Howells 提交于
      Make sure all dentries refs are released before calling kill_anon_super() so
      that the assumption that generic_shutdown_super() can completely destroy the
      dentry tree for there will be no external references holds true.
      
      What was being done in the put_super() superblock op, is now done in the
      kill_sb() filesystem op instead, prior to calling kill_anon_super().
      
      This makes the struct autofs_sb_info::root member variable redundant (since
      sb->s_root is still available), and so that is removed.  The calls to
      shrink_dcache_sb() are also removed since they're also redundant as
      shrink_dcache_for_umount() will now be called after the cleanup routine.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Acked-by: NIan Kent <raven@themaw.net>
      Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      6ce31523
    • D
      [PATCH] ReiserFS: Make sure all dentries refs are released before calling kill_block_super() · edc666e2
      David Howells 提交于
      Make sure all dentries refs are released before calling kill_block_super()
      so that the assumption that generic_shutdown_super() can completely destroy
      the dentry tree for there will be no external references holds true.
      
      What was being done in the put_super() superblock op, is now done in the
      kill_sb() filesystem op instead, prior to calling kill_block_super().
      
      Changes made in [try #2]:
      
       (*) reiserfs_kill_sb() now checks that the superblock FS info pointer is set
           before trying to dereference it.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Cc: <reiserfs-dev@namesys.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      edc666e2
    • A
      [PATCH] fs/*: use BUILD_BUG_ON · 2ecd05ae
      Alexey Dobriyan 提交于
      Signed-off-by: NAlexey Dobriyan <adobriyan@gmail.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Mark Fasheh <mark.fasheh@oracle.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      2ecd05ae
    • M
      [PATCH] D-cache aliasing issue in __block_prepare_write · 8c581651
      Monakhov Dmitriy 提交于
      A couple of flush_dcache_page()s are missing on the I/O-error paths.
      
      Cc: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      8c581651
    • E
      [PATCH] Remove unnecessary check in fs/fat/inode.c · 97e860d3
      Eric Sesterhenn 提交于
      Aince all callers dereference sb, and this function does so earlier too, we
      dont need the check.
      Signed-off-by: NEric Sesterhenn <snakebyte@gmx.de>
      Acked-by: NOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      97e860d3
    • M
      [PATCH] 32-bit compatibility HDIO IOCTLs · 39484e53
      Maciej W. Rozycki 提交于
      A couple of HDIO IOCTLs are not yet handled and a few others are marked
      as using a pointer rather than an unsigned long.  The formers include:
      
      HDIO_GET_WCACHE, HDIO_GET_ACOUSTIC, HDIO_GET_ADDRESS and
      HDIO_GET_BUSSTATE.  The latters are: HDIO_SET_MULTCOUNT,
      HDIO_SET_UNMASKINTR, HDIO_SET_KEEPSETTINGS, HDIO_SET_32BIT,
      HDIO_SET_NOWERR, HDIO_SET_DMA, HDIO_SET_PIO_MODE and HDIO_SET_NICE.
      
      Additionally 0x330 used to be HDIO_GETGEO_BIG and may be issued by 32-bit
      `hdparm' run on a 64-bit kernel making Linux complain loudly.
      
      This is a fix for these issues.
      Signed-off-by: NMaciej W. Rozycki <macro@linux-mips.org>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      39484e53
    • V
      [PATCH] ext2: errors behaviour fix · 5a2b4062
      Vasily Averin 提交于
      Current error behaviour for ext2 and ext3 filesystems does not fully
      correspond to the documentation and should be fixed.
      
      According to man 8 mount, ext2 and ext3 file systems allow to set one of 3
      different on-errors behaviours:
      
        ---- start of quote man 8 mount ----
      
        errors=continue / errors=remount-ro / errors=panic
      
          Define the behaviour when an error is encountered.  (Either ignore
          errors and just mark the file system erroneous and continue, or remount
          the file system read-only, or panic and halt the system.) The default is
          set in the filesystem superblock, and can be changed using tune2fs(8).
      
        ---- end of quote ----
      
      However EXT3_ERRORS_CONTINUE is not read from the superblock, and thus
      ERRORS_CONT is not saved on the sbi->s_mount_opt.  It leads to the incorrect
      handle of errors on ext3.
      
      Then we've checked corresponding code in ext2 and discovered that it is buggy
      as well:
      
      - EXT2_ERRORS_CONTINUE is not read from the superblock (the same);
      
      - parse_option() does not clean the alternative values and thus something
        like (ERRORS_CONT|ERRORS_RO) can be set;
      
      - if options are omitted, parse_option() does not set any of these options.
      
      Therefore it is possible to set any combination of these options on the ext2:
      
      - none of them may be set: EXT2_ERRORS_CONTINUE on superblock / empty mount
        options;
      
      - any of them may be set using mount options;
      
      - 2 any options may be set: by using EXT2_ERRORS_RO/EXT2_ERRORS_PANIC on the
        superblock and other value in mount options;
      
      - and finally all three options may be set by adding third option in remount.
      
      Currently ext2 uses these values only in ext2_error() and it is not leading to
      any noticeable troubles.  However somebody may be discouraged when he will try
      to workaround EXT2_ERRORS_PANIC on the superblock by using errors=continue in
      mount options.
      
      This patch:
      
      EXT2_ERRORS_CONTINUE should be read from the superblock as default value for
      error behaviour.  parse_option() should clean the alternative options and
      should not change default value taken from the superblock.
      Signed-off-by: NVasily Averin <vvs@sw.ru>
      Acked-by: NKirill Korotaev <dev@openvz.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      5a2b4062
    • D
      [PATCH] ext3: errors behaviour fix · 2245d7c2
      Dmitry Mishin 提交于
      Current error behaviour for ext2 and ext3 filesystems does not fully
      correspond to the documentation and should be fixed.
      
      According to man 8 mount, ext2 and ext3 file systems allow to set one of 3
      different on-errors behaviours:
      
        ---- start of quote man 8 mount ----
      
        errors=continue / errors=remount-ro / errors=panic
      
          Define the behaviour when an error is encountered.  (Either ignore
          errors and just mark the file system erroneous and continue, or remount
          the file system read-only, or panic and halt the system.) The default is
          set in the filesystem superblock, and can be changed using tune2fs(8).
      
        ---- end of quote ----
      
      However EXT3_ERRORS_CONTINUE is not read from the superblock, and thus
      ERRORS_CONT is not saved on the sbi->s_mount_opt.  It leads to the incorrect
      handle of errors on ext3.
      
      Then we've checked corresponding code in ext2 and discovered that it is buggy
      as well:
      
      - EXT2_ERRORS_CONTINUE is not read from the superblock (the same);
      
      - parse_option() does not clean the alternative values and thus something
        like (ERRORS_CONT|ERRORS_RO) can be set;
      
      - if options are omitted, parse_option() does not set any of these options.
      
      Therefore it is possible to set any combination of these options on the ext2:
      
      - none of them may be set: EXT2_ERRORS_CONTINUE on superblock / empty mount
        options;
      
      - any of them may be set using mount options;
      
      - 2 any options may be set: by using EXT2_ERRORS_RO/EXT2_ERRORS_PANIC on the
        superblock and other value in mount options;
      
      - and finally all three options may be set by adding third option in remount.
      
      Currently ext2 uses these values only in ext2_error() and it is not leading to
      any noticeable troubles.  However somebody may be discouraged when he will try
      to workaround EXT2_ERRORS_PANIC on the superblock by using errors=continue in
      mount options.
      
      This patch:
      
      EXT3_ERRORS_CONTINUE should be taken from the superblock as default value for
      error behaviour.
      Signed-off-by: NDmitry Mishin <dim@openvz.org>
      Acked-by: NVasily Averin <vvs@sw.ru>
      Acked-by: NKirill Korotaev <dev@openvz.org>
      Cc: <linux-ext4@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      2245d7c2
    • A
      [PATCH] grow_buffers() infinite loop fix · e5657933
      Andrew Morton 提交于
      If grow_buffers() is for some reason passed a block number which wants to lie
      outside the maximum-addressable pagecache range (PAGE_SIZE * 4G bytes) then it
      will accidentally truncate `index' and will then instnatiate a page at the
      wrong pagecache offset.  This causes __getblk_slow() to go into an infinite
      loop.
      
      This can happen with corrupted disks, or with software errors elsewhere.
      
      Detect that, and handle it.
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      e5657933
    • D
      [PATCH] epoll_pwait() · b611967d
      Davide Libenzi 提交于
      Implement the epoll_pwait system call, that extend the event wait mechanism
      with the same logic ppoll and pselect do.  The definition of epoll_pwait
      is:
      
      int epoll_pwait(int epfd, struct epoll_event *events, int maxevents,
                       int timeout, const sigset_t *sigmask, size_t sigsetsize);
      
      The difference between the vanilla epoll_wait and epoll_pwait is that the
      latter allows the caller to specify a signal mask to be set while waiting
      for events.  Hence epoll_pwait will wait until either one monitored event,
      or an unmasked signal happen.  If sigmask is NULL, the epoll_pwait system
      call will act exactly like epoll_wait.  For the POSIX definition of
      pselect, information is available here:
      
      http://www.opengroup.org/onlinepubs/009695399/functions/select.htmlSigned-off-by: NDavide Libenzi <davidel@xmailserver.org>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: Andi Kleen <ak@muc.de>
      Cc: Michael Kerrisk <mtk-manpages@gmx.net>
      Cc: Ulrich Drepper <drepper@redhat.com>
      Cc: Roland McGrath <roland@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b611967d
    • A
      [PATCH] ext4 whitespace cleanups · 63f57933
      Andrew Morton 提交于
      Someone's tab key is emitting spaces.  Attempt to repair some of the damage.
      
      Cc: <linux-ext4@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      63f57933
    • D
      [PATCH] ext4: errors behaviour fix · ceea16bf
      Dmitry Mishin 提交于
      Current error behaviour for ext2 and ext3 filesystems does not fully
      correspond to the documentation and should be fixed.
      
      According to man 8 mount, ext2 and ext3 file systems allow to set one of 3
      different on-errors behaviours:
      
        ---- start of quote man 8 mount ----
      
        errors=continue / errors=remount-ro / errors=panic
      
          Define the behaviour when an error is encountered.  (Either ignore
          errors and just mark the file system erroneous and continue, or remount
          the file system read-only, or panic and halt the system.) The default is
          set in the filesystem superblock, and can be changed using tune2fs(8).
      
        ---- end of quote ----
      
      However EXT3_ERRORS_CONTINUE is not read from the superblock, and thus
      ERRORS_CONT is not saved on the sbi->s_mount_opt.  It leads to the incorrect
      handle of errors on ext3.
      
      Then we've checked corresponding code in ext2 and discovered that it is buggy
      as well:
      
      - EXT2_ERRORS_CONTINUE is not read from the superblock (the same);
      
      - parse_option() does not clean the alternative values and thus something
        like (ERRORS_CONT|ERRORS_RO) can be set;
      
      - if options are omitted, parse_option() does not set any of these options.
      
      Therefore it is possible to set any combination of these options on the ext2:
      
      - none of them may be set: EXT2_ERRORS_CONTINUE on superblock / empty mount
        options;
      
      - any of them may be set using mount options;
      
      - 2 any options may be set: by using EXT2_ERRORS_RO/EXT2_ERRORS_PANIC on the
        superblock and other value in mount options;
      
      - and finally all three options may be set by adding third option in remount.
      
      Currently ext2 uses these values only in ext2_error() and it is not leading to
      any noticeable troubles.  However somebody may be discouraged when he will try
      to workaround EXT2_ERRORS_PANIC on the superblock by using errors=continue in
      mount options.
      
      This patch:
      
      EXT4_ERRORS_CONTINUE should be taken from the superblock as default value for
      error behaviour.
      Signed-off-by: NDmitry Mishin <dim@openvz.org>
      Acked-by: NVasily Averin <vvs@sw.ru>
      Acked-by: NKirill Korotaev <dev@openvz.org>
      Cc: <linux-ext4@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      ceea16bf
    • A
      [PATCH] ext4: rename logic_sb_block · 70bbb3e0
      Andrew Morton 提交于
      I assume this means "logical sb block".  So call it that.
      
      I still don't understand the name though.  A block is a block.  What's
      different about this one?
      
      Cc: <linux-ext4@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      70bbb3e0
    • A
      [PATCH] ext4 64 bit divide fix · f4e5bc24
      Andrew Morton 提交于
      With CONFIG_LBD=n, sector_div() expands to a plain old divide.  But ext4 is
      _not_ passing in a sector_t as the first argument, so...
      
      fs/built-in.o: In function `ext4_get_group_no_and_offset':
      fs/ext4/balloc.c:39: undefined reference to `__umoddi3'
      fs/ext4/balloc.c:41: undefined reference to `__udivdi3'
      fs/built-in.o: In function `find_group_orlov':
      fs/ext4/ialloc.c:278: undefined reference to `__udivdi3'
      fs/built-in.o: In function `ext4_fill_super':
      fs/ext4/super.c:1488: undefined reference to `__udivdi3'
      fs/ext4/super.c:1488: undefined reference to `__umoddi3'
      fs/ext4/super.c:1594: undefined reference to `__udivdi3'
      fs/ext4/super.c:1601: undefined reference to `__umoddi3'
      
      Fix that up by calling do_div() directly.
      
      Also cast the arg to u64.  do_div() is only defined on u64, and ext4_fsblk_t
      is supposed to be opaque.
      
      Note especially the changes to find_group_orlov().  It was attempting to do
      
      	do_div(int, unsigned long long);
      
      which is royally screwed up.  Switched it to plain old divide.
      
      Cc: <linux-ext4@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      f4e5bc24
    • A
      [PATCH] ext4 uninline ext4_get_group_no_and_offset() · 72b64b59
      Andrew Morton 提交于
      Way too big to inline.
      
      Cc: <linux-ext4@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      72b64b59
    • A
      [PATCH] ext4: move block number hi bits · 8fadc143
      Alexandre Ratchov 提交于
      move '_hi' bits of block numbers in the larger part of the
      block group descriptor structure
      Signed-off-by: NAlexandre Ratchov <alexandre.ratchov@bull.net>
      Signed-off-by: NDave Kleikamp <shaggy@austin.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      8fadc143