1. 03 4月, 2006 16 次提交
    • J
      [PATCH] splice: fix page stealing LRU handling. · 3e7ee3e7
      Jens Axboe 提交于
      Originally from Nick Piggin, just adapted to the newer branch.
      
      You can't check PageLRU without holding zone->lru_lock.  The page
      release code can get away with it only because the page refcount is 0 at
      that point. Also, you can't reliably remove pages from the LRU unless
      the refcount is 0. Ever.
      Signed-off-by: NNick Piggin <nickpiggin@yahoo.com.au>
      Signed-off-by: NJens Axboe <axboe@suse.de>
      3e7ee3e7
    • J
      [PATCH] splice: page stealing needs to wait_on_page_writeback() · ad8d6f0a
      Jens Axboe 提交于
      Thanks to Andrew for the good explanation of why this is so. akpm writes:
      
      If a page is under writeback and we remove it from pagecache, it's still
      going to get written to disk.  But the VFS no longer knows about that page,
      nor that this page is about to modify disk blocks.
      
      So there might be scenarios in which those
      blocks-which-are-about-to-be-written-to get reused for something else.
      When writeback completes, it'll scribble on those blocks.
      
      This won't happen in ext2/ext3-style filesystems in normal mode because the
      page has buffers and try_to_release_page() will fail.
      
      But ext2 in nobh mode doesn't attach buffers at all - it just sticks the
      page in a BIO, finds some new blocks, points the BIO at those blocks and
      lets it rip.
      
      While that write IO's in flight, someone could truncate the file.  Truncate
      won't block on the writeout because the page isn't in pagecache any more.
      So truncate will the free the blocks from the file under the page's feet.
      Then something else can reallocate those blocks.  Then write data to them.
      
      Now, the original write completes, corrupting the filesystem.
      Signed-off-by: NJens Axboe <axboe@suse.de>
      ad8d6f0a
    • J
      [PATCH] splice: export generic_splice_sendpage · 059a8f37
      Jens Axboe 提交于
      Forgot that one, thanks Jeff. Also move the other EXPORT_SYMBOL
      to right below the functions.
      Signed-off-by: NJens Axboe <axboe@suse.de>
      059a8f37
    • J
      [PATCH] splice: add a SPLICE_F_MORE flag · b2b39fa4
      Jens Axboe 提交于
      This lets userspace indicate whether more data will be coming in a
      subsequent splice call.
      Signed-off-by: NJens Axboe <axboe@suse.de>
      b2b39fa4
    • J
      [PATCH] splice: add comments documenting more of the code · 83f9135b
      Jens Axboe 提交于
      Hopefully this will make Andrew a little more happy.
      Signed-off-by: NJens Axboe <axboe@suse.de>
      83f9135b
    • J
      [PATCH] splice: improve writeback and clean up page stealing · 4f6f0bd2
      Jens Axboe 提交于
      By cleaning up the writeback logic (killing write_one_page() and the manual
      set_page_dirty()), we can get rid of ->stolen inside the pipe_buffer and
      just keep it local in pipe_to_file().
      
      This also adds dirty page balancing logic and O_SYNC handling.
      Signed-off-by: NJens Axboe <axboe@suse.de>
      4f6f0bd2
    • J
      [PATCH] splice: fix shadow[] filling logic · 53cd9ae8
      Jens Axboe 提交于
      Clear the entire range, and don't increment pidx or we keep filling
      the same position again and again.
      
      Thanks to KAMEZAWA Hiroyuki.
      Signed-off-by: NJens Axboe <axboe@suse.de>
      53cd9ae8
    • L
      Merge master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb · b043b673
      Linus Torvalds 提交于
      * master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb: (49 commits)
        V4L/DVB (3667b): cpia2: fix function prototype
        V4L/DVB (3702): Make msp3400 routing defines more consistent
        V4L/DVB (3700): Remove obsolete commands from tvp5150.c
        V4L/DVB (3697): More msp3400 and bttv fixes
        V4L/DVB (3696): Previous change for cx2341X boards broke the remote support
        V4L/DVB (3693): Fix msp3400c and bttv stereo/mono/bilingual detection/handling
        V4L/DVB (3692): Keep experimental SLICED_VBI defines under an #if 0
        V4L/DVB (3689): Kconfig: fix VP-3054 Secondary I2C Bus build configuration menu dependencies
        V4L/DVB (3673): Fix budget-av CAM reset
        V4L/DVB (3672): Fix memory leak in dvr open
        V4L/DVB (3671): New module parameter 'tv_standard' (dvb-ttpci driver)
        V4L/DVB (3670): Fix typo in comment
        V4L/DVB (3669): Configurable dma buffer size for saa7146-based budget dvb cards
        V4L/DVB (3653h): Move usb v4l docs into Documentation/video4linux
        V4L/DVB (3667a): Fix SAP + stereo mode at msp3400
        V4L/DVB (3666): Remove trailing newlines
        V4L/DVB (3665): Add new NEC uPD64031A and uPD64083 i2c drivers
        V4L/DVB (3663): Fix msp3400c wait time and better audio mode fallbacks
        V4L/DVB (3662): Don't set msp3400c-non-existent register
        V4L/DVB (3661): Add wm8739 stereo audio ADC i2c driver
        ...
      b043b673
    • L
      Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband · cd5e25d9
      Linus Torvalds 提交于
      * 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband:
        IB/ipath: kbuild infrastructure
        IB/ipath: infiniband verbs support
        IB/ipath: misc infiniband code, part 2
        IB/ipath: misc infiniband code, part 1
        IB/ipath: infiniband RC protocol support
        IB/ipath: infiniband UC and UD protocol support
        IB/ipath: infiniband header files
        IB/ipath: layering interfaces used by higher-level driver code
        IB/ipath: support for userspace apps using core driver
        IB/ipath: sysfs and ipathfs support for core driver
        IB/ipath: misc driver support code
        IB/ipath: chip initialisation code, and diag support
        IB/ipath: support for PCI Express devices
        IB/ipath: support for HyperTransport devices
        IB/ipath: core driver header files
        IB/ipath: core device driver
      cd5e25d9
    • L
      Merge master.kernel.org:/pub/scm/linux/kernel/git/brodo/pcmcia-2.6 · 86dca4f8
      Linus Torvalds 提交于
      * master.kernel.org:/pub/scm/linux/kernel/git/brodo/pcmcia-2.6: (33 commits)
        [PATCH] pcmcia: declare pccard_iodyn_ops (fix m8xx_pcmcia.c compilation error)
        [PATCH] pcmcia: fix pcmcia_device_remove oops
        [PATCH] pcmcia: Add support for Possio GCC AKA PCMCIA Siemens MC45
        [PATCH] pcmcia: pseudo device handling update
        [PATCH] pcmcia: convert DEV_OK to pcmcia_dev_present
        [PATCH] pcmcia: use bitfield instead of p_state and state
        [PATCH] pcmcia: remove unused p_dev->state flags
        [PATCH] pcmcia: make pcmcia_release_{io,irq} static
        [PATCH] pcmcia: add return value to _config() functions
        [PATCH] pcmcia: remove dev_link_t and client_handle_t indirection
        [PATCH] pcmcia: embed dev_link_t into struct pcmcia_device
        [PATCH] pcmcia: rename pcmcia_device.state
        [PATCH] pcmcia: remove unneeded Vcc pseudo setting
        [PATCH] pcmcia: remove export of pcmcia_release_configuration
        [PATCH] pcmcia: default suspend and resume handling
        [PATCH] pcmcia: convert remaining users of pcmcia_release_io and _irq
        [PATCH] pcmcia: add pcmcia_disable_device
        [PATCH] serial_cs: add Merlin U630 IDs
        [PATCH] pcmcia: AT91RM9200 Compact Flash driver
        [PATCH] pcmcia: socket.functions starts with 1
        ...
      86dca4f8
    • L
      Merge master.kernel.org:/pub/scm/linux/kernel/git/dtor/input · 9c8680e2
      Linus Torvalds 提交于
      * master.kernel.org:/pub/scm/linux/kernel/git/dtor/input: (26 commits)
        Input: add support for Braille devices
        Input: synaptics - limit rate to 40pps on Toshiba Protege M300
        Input: gamecon - add SNES mouse support
        Input: make modalias code respect allowed buffer size
        Input: convert /proc handling to seq_file
        Input: limit attributes' output to PAGE_SIZE
        Input: gameport - fix memory leak
        Input: serio - fix memory leak
        Input: zaurus keyboard driver updates
        Input: i8042 - fix logic around pnp_register_driver()
        Input: ns558 - fix logic around pnp_register_driver()
        Input: pcspkr - separate device and driver registration
        Input: atkbd - allow disabling on X86_PC (if EMBEDDED)
        Input: atkbd - disable softrepeat for dumb keyboards
        Input: atkbd - fix complaints about 'releasing unknown key 0x7f'
        Input: HID - fix duplicate key mapping for Logitech UltraX remote
        Input: use kzalloc() throughout the code
        Input: fix input_free_device() implementation
        Input: initialize serio and gameport at subsystem level
        Input: uinput - semaphore to mutex conversion
        ...
      9c8680e2
    • L
      Merge master.kernel.org:/pub/scm/linux/kernel/git/paulus/powerpc · f900e582
      Linus Torvalds 提交于
      * master.kernel.org:/pub/scm/linux/kernel/git/paulus/powerpc:
        [PATCH] powerpc: iSeries needs slb_initialize to be called
        powerpc: hook up the splice syscall
        [PATCH] powerpc/cell: compile fixes
        [PATCH] powerpc: trivial spelling fixes in fault.c
        [PATCH] powerpc/pseries: EEH Cleanup
        [PATCH] powerpc/pseries: misc lparcfg fixes
        [PATCH] powerpc/pseries: fix device name printing, again.
        [PATCH] powerpc: Extends HCALL interface for InfiniBand usage
        [PATCH] powerpc/pseries: Change H_StudlyCaps to H_SHOUTING_CAPS
        [PATCH] powerpc/pseries: print message if EEH recovery fails
        [PATCH] powerpc/pseries: mutex lock to serialize EEH event processing
        powerpc: converted embedded platforms to use new define_machine support
        powerpc: merge machine_check_exception between ppc32 & ppc64
      f900e582
    • L
      Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 · 23344cb3
      Linus Torvalds 提交于
      * master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
        [SPARC]: Wire up sys_sync_file_range() into syscall tables.
        [SPARC]: Wire up sys_splice() into the syscall tables.
        [SPARC64]: Update defconfig.
        [SPARC64]: Align address in huge_pte_alloc().
        [SPARC64]: Document the instruction checks we do in do_sparc64_fault().
        [SPARC64]: Make tsb_sync() mm comparison more precise.
      23344cb3
    • L
      Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 · bacd3add
      Linus Torvalds 提交于
      * master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
        [NET]: Fully fix the memory leaks in sys_accept().
        [NETFILTER]: iptables 32bit compat layer
        [NETFILTER]: {ip,nf}_conntrack_netlink: fix expectation notifier unregistration
        [NETFILTER]: fix ifdef for connmark support in nf_conntrack_netlink
        [NETFILTER]: x_tables: unify IPv4/IPv6 multiport match
        [NETFILTER]: x_tables: unify IPv4/IPv6 esp match
        [NET]: Fix dentry leak in sys_accept().
        [IPSEC]: Kill unused decap state structure
        [IPSEC]: Kill unused decap state argument
        [NET]: com90xx kmalloc fix
        [TG3]: Update driver version and reldate.
        [TG3]: Revert "Speed up SRAM access"
      bacd3add
    • L
      splice: add SPLICE_F_NONBLOCK flag · 29e35094
      Linus Torvalds 提交于
      It doesn't make the splice itself necessarily nonblocking (because the
      actual file descriptors that are spliced from/to may block unless they
      have the O_NONBLOCK flag set), but it makes the splice pipe operations
      nonblocking.
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      29e35094
    • L
      ppc64: actually add sys_splice() to the system call table · b45e516f
      Linus Torvalds 提交于
      (We'd only added the number, which meant that actually trying
      to use splice just went off into la-la-land)
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b45e516f
  2. 02 4月, 2006 24 次提交