From b32792624be0daa0bf12e383baaa666bc7cd2424 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Wed, 3 Nov 2010 13:44:55 -0400 Subject: [PATCH] --- yaml --- r: 221565 b: refs/heads/master c: 81a6cff678ecee7cdc0658285d3150660c07cfce h: refs/heads/master i: 221563: b8c1b3d0e1b28a6288dbab33505e23497af206b4 v: v3 --- [refs] | 2 +- trunk/fs/ext4/inode.c | 2 -- trunk/fs/logfs/logfs.h | 2 +- trunk/include/linux/hardirq.h | 8 ++++++-- trunk/mm/filemap.c | 4 +++- trunk/scripts/kconfig/symbol.c | 2 +- 6 files changed, 12 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index ff05efd44478..a305eeaec9f8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 69dbdd819599e2f3b77c172e83af512845bca5ad +refs/heads/master: 81a6cff678ecee7cdc0658285d3150660c07cfce diff --git a/trunk/fs/ext4/inode.c b/trunk/fs/ext4/inode.c index 191616470466..4d78342f3bf0 100644 --- a/trunk/fs/ext4/inode.c +++ b/trunk/fs/ext4/inode.c @@ -5410,9 +5410,7 @@ int ext4_getattr(struct vfsmount *mnt, struct dentry *dentry, * will return the blocks that include the delayed allocation * blocks for this file. */ - spin_lock(&EXT4_I(inode)->i_block_reservation_lock); delalloc_blocks = EXT4_I(inode)->i_reserved_data_blocks; - spin_unlock(&EXT4_I(inode)->i_block_reservation_lock); stat->blocks += (delalloc_blocks << inode->i_sb->s_blocksize_bits)>>9; return 0; diff --git a/trunk/fs/logfs/logfs.h b/trunk/fs/logfs/logfs.h index cd51a36b37f0..57afd4a6fabb 100644 --- a/trunk/fs/logfs/logfs.h +++ b/trunk/fs/logfs/logfs.h @@ -486,7 +486,7 @@ static inline int logfs_get_sb_bdev(struct logfs_super *s, /* dev_mtd.c */ #ifdef CONFIG_MTD -int logfs_get_sb_mtd(struct logfs_super *s, int mtdnr) +int logfs_get_sb_mtd(struct logfs_super *s, int mtdnr); #else static inline int logfs_get_sb_mtd(struct logfs_super *s, int mtdnr) { diff --git a/trunk/include/linux/hardirq.h b/trunk/include/linux/hardirq.h index 8a389b608ce3..41cb31f14ee3 100644 --- a/trunk/include/linux/hardirq.h +++ b/trunk/include/linux/hardirq.h @@ -96,11 +96,15 @@ */ #define in_nmi() (preempt_count() & NMI_MASK) -#if defined(CONFIG_PREEMPT) +#if defined(CONFIG_PREEMPT) && defined(CONFIG_BKL) # define PREEMPT_INATOMIC_BASE kernel_locked() -# define PREEMPT_CHECK_OFFSET 1 #else # define PREEMPT_INATOMIC_BASE 0 +#endif + +#if defined(CONFIG_PREEMPT) +# define PREEMPT_CHECK_OFFSET 1 +#else # define PREEMPT_CHECK_OFFSET 0 #endif diff --git a/trunk/mm/filemap.c b/trunk/mm/filemap.c index 75572b5f2374..61ba5e405791 100644 --- a/trunk/mm/filemap.c +++ b/trunk/mm/filemap.c @@ -1563,8 +1563,10 @@ int filemap_fault(struct vm_area_struct *vma, struct vm_fault *vmf) goto no_cached_page; } - if (!lock_page_or_retry(page, vma->vm_mm, vmf->flags)) + if (!lock_page_or_retry(page, vma->vm_mm, vmf->flags)) { + page_cache_release(page); return ret | VM_FAULT_RETRY; + } /* Did it get truncated? */ if (unlikely(page->mapping != mapping)) { diff --git a/trunk/scripts/kconfig/symbol.c b/trunk/scripts/kconfig/symbol.c index c0efe102d655..af6e9f3de950 100644 --- a/trunk/scripts/kconfig/symbol.c +++ b/trunk/scripts/kconfig/symbol.c @@ -875,7 +875,7 @@ const char *sym_expand_string_value(const char *in) symval = sym_get_string_value(sym); } - newlen = strlen(res) + strlen(symval) + strlen(src); + newlen = strlen(res) + strlen(symval) + strlen(src) + 1; if (newlen > reslen) { reslen = newlen; res = realloc(res, reslen);