From 51a0f1cc7042ddda87b0281ac7d51ca76ac08a2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Date: Sun, 7 Oct 2007 23:43:10 -0700 Subject: [PATCH] --- yaml --- r: 65320 b: refs/heads/master c: 48611c47d09023d9356e78550d1cadb8d61da9c8 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/aio.c | 2 +- trunk/include/linux/writeback.h | 2 +- trunk/mm/filemap.c | 1 - trunk/mm/fremap.c | 2 +- trunk/mm/memory.c | 9 ++------- trunk/mm/page-writeback.c | 4 ++-- trunk/net/ipv4/tcp_input.c | 3 +++ 8 files changed, 11 insertions(+), 14 deletions(-) diff --git a/[refs] b/[refs] index 512015f02ebc..db8eb3f8e7d8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 87e2831c3fa39cbf6f7ab676bb5aef039b9659e2 +refs/heads/master: 48611c47d09023d9356e78550d1cadb8d61da9c8 diff --git a/trunk/fs/aio.c b/trunk/fs/aio.c index ea2e19820381..dbe699e9828c 100644 --- a/trunk/fs/aio.c +++ b/trunk/fs/aio.c @@ -1562,7 +1562,6 @@ int fastcall io_submit_one(struct kioctx *ctx, struct iocb __user *user_iocb, fput(file); return -EAGAIN; } - req->ki_filp = file; if (iocb->aio_flags & IOCB_FLAG_RESFD) { /* * If the IOCB_FLAG_RESFD flag of aio_flags is set, get an @@ -1577,6 +1576,7 @@ int fastcall io_submit_one(struct kioctx *ctx, struct iocb __user *user_iocb, } } + req->ki_filp = file; ret = put_user(req->ki_key, &user_iocb->aio_key); if (unlikely(ret)) { dprintk("EFAULT: aio_key\n"); diff --git a/trunk/include/linux/writeback.h b/trunk/include/linux/writeback.h index b4af6bcb7b7a..4ef4d22e5e43 100644 --- a/trunk/include/linux/writeback.h +++ b/trunk/include/linux/writeback.h @@ -127,7 +127,7 @@ int sync_page_range(struct inode *inode, struct address_space *mapping, loff_t pos, loff_t count); int sync_page_range_nolock(struct inode *inode, struct address_space *mapping, loff_t pos, loff_t count); -void set_page_dirty_balance(struct page *page, int page_mkwrite); +void set_page_dirty_balance(struct page *page); void writeback_set_ratelimit(void); /* pdflush.c */ diff --git a/trunk/mm/filemap.c b/trunk/mm/filemap.c index 15c8413ee929..90b657b50f81 100644 --- a/trunk/mm/filemap.c +++ b/trunk/mm/filemap.c @@ -1388,7 +1388,6 @@ int filemap_fault(struct vm_area_struct *vma, struct vm_fault *vmf) size = (i_size_read(inode) + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT; if (unlikely(vmf->pgoff >= size)) { unlock_page(page); - page_cache_release(page); goto outside_data_content; } diff --git a/trunk/mm/fremap.c b/trunk/mm/fremap.c index 95bcb5641c72..c395b1abf082 100644 --- a/trunk/mm/fremap.c +++ b/trunk/mm/fremap.c @@ -160,7 +160,7 @@ asmlinkage long sys_remap_file_pages(unsigned long start, unsigned long size, if (vma->vm_private_data && !(vma->vm_flags & VM_NONLINEAR)) goto out; - if (!(vma->vm_flags & VM_CAN_NONLINEAR)) + if (!vma->vm_flags & VM_CAN_NONLINEAR) goto out; if (end <= start || start < vma->vm_start || end > vma->vm_end) diff --git a/trunk/mm/memory.c b/trunk/mm/memory.c index f82b359b2745..c0e7741a98de 100644 --- a/trunk/mm/memory.c +++ b/trunk/mm/memory.c @@ -1639,7 +1639,6 @@ static int do_wp_page(struct mm_struct *mm, struct vm_area_struct *vma, struct page *old_page, *new_page; pte_t entry; int reuse = 0, ret = 0; - int page_mkwrite = 0; struct page *dirty_page = NULL; old_page = vm_normal_page(vma, address, orig_pte); @@ -1688,8 +1687,6 @@ static int do_wp_page(struct mm_struct *mm, struct vm_area_struct *vma, page_cache_release(old_page); if (!pte_same(*page_table, orig_pte)) goto unlock; - - page_mkwrite = 1; } dirty_page = old_page; get_page(dirty_page); @@ -1777,7 +1774,7 @@ static int do_wp_page(struct mm_struct *mm, struct vm_area_struct *vma, * do_no_page is protected similarly. */ wait_on_page_locked(dirty_page); - set_page_dirty_balance(dirty_page, page_mkwrite); + set_page_dirty_balance(dirty_page); put_page(dirty_page); } return ret; @@ -2325,7 +2322,6 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma, struct page *dirty_page = NULL; struct vm_fault vmf; int ret; - int page_mkwrite = 0; vmf.virtual_address = (void __user *)(address & PAGE_MASK); vmf.pgoff = pgoff; @@ -2402,7 +2398,6 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma, anon = 1; /* no anon but release vmf.page */ goto out; } - page_mkwrite = 1; } } @@ -2458,7 +2453,7 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma, if (anon) page_cache_release(vmf.page); else if (dirty_page) { - set_page_dirty_balance(dirty_page, page_mkwrite); + set_page_dirty_balance(dirty_page); put_page(dirty_page); } diff --git a/trunk/mm/page-writeback.c b/trunk/mm/page-writeback.c index 44720363374c..63512a9ed57e 100644 --- a/trunk/mm/page-writeback.c +++ b/trunk/mm/page-writeback.c @@ -274,9 +274,9 @@ static void balance_dirty_pages(struct address_space *mapping) pdflush_operation(background_writeout, 0); } -void set_page_dirty_balance(struct page *page, int page_mkwrite) +void set_page_dirty_balance(struct page *page) { - if (set_page_dirty(page) || page_mkwrite) { + if (set_page_dirty(page)) { struct address_space *mapping = page_mapping(page); if (mapping) diff --git a/trunk/net/ipv4/tcp_input.c b/trunk/net/ipv4/tcp_input.c index bbad2cdb74b7..f893e90061eb 100644 --- a/trunk/net/ipv4/tcp_input.c +++ b/trunk/net/ipv4/tcp_input.c @@ -2420,6 +2420,9 @@ static int tcp_tso_acked(struct sock *sk, struct sk_buff *skb, __u32 dval = min(tp->fackets_out, packets_acked); tp->fackets_out -= dval; } + /* hint's skb might be NULL but we don't need to care */ + tp->fastpath_cnt_hint -= min_t(u32, packets_acked, + tp->fastpath_cnt_hint); tp->packets_out -= packets_acked; BUG_ON(tcp_skb_pcount(skb) == 0);