Merge branch 'akpm' (incoming from Andrew)
Merge misc patches from Andrew Morton: - Florian has vanished so I appear to have become fbdev maintainer again :( - Joel and Mark are distracted to welcome to the new OCFS2 maintainer - The backlight queue - Small core kernel changes - lib/ updates - The rtc queue - Various random bits * akpm: (164 commits) rtc: rtc-davinci: use devm_*() functions rtc: rtc-max8997: use devm_request_threaded_irq() rtc: rtc-max8907: use devm_request_threaded_irq() rtc: rtc-da9052: use devm_request_threaded_irq() rtc: rtc-wm831x: use devm_request_threaded_irq() rtc: rtc-tps80031: use devm_request_threaded_irq() rtc: rtc-lp8788: use devm_request_threaded_irq() rtc: rtc-coh901331: use devm_clk_get() rtc: rtc-vt8500: use devm_*() functions rtc: rtc-tps6586x: use devm_request_threaded_irq() rtc: rtc-imxdi: use devm_clk_get() rtc: rtc-cmos: use dev_warn()/dev_dbg() instead of printk()/pr_debug() rtc: rtc-pcf8583: use dev_warn() instead of printk() rtc: rtc-sun4v: use pr_warn() instead of printk() rtc: rtc-vr41xx: use dev_info() instead of printk() rtc: rtc-rs5c313: use pr_err() instead of printk() rtc: rtc-at91rm9200: use dev_dbg()/dev_err() instead of printk()/pr_debug() rtc: rtc-rs5c372: use dev_dbg()/dev_warn() instead of printk()/pr_debug() rtc: rtc-ds2404: use dev_err() instead of printk() rtc: rtc-efi: use dev_err()/dev_warn()/pr_err() instead of printk() ...
Tento commit je obsažen v:
@@ -616,6 +616,7 @@ v9fs_vm_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
|
||||
lock_page(page);
|
||||
if (page->mapping != inode->i_mapping)
|
||||
goto out_unlock;
|
||||
wait_for_stable_page(page);
|
||||
|
||||
return VM_FAULT_LOCKED;
|
||||
out_unlock:
|
||||
|
@@ -1249,7 +1249,7 @@ static int writenote(struct memelfnote *men, struct file *file,
|
||||
#undef DUMP_WRITE
|
||||
|
||||
static void fill_elf_header(struct elfhdr *elf, int segs,
|
||||
u16 machine, u32 flags, u8 osabi)
|
||||
u16 machine, u32 flags)
|
||||
{
|
||||
memset(elf, 0, sizeof(*elf));
|
||||
|
||||
@@ -1634,7 +1634,7 @@ static int fill_note_info(struct elfhdr *elf, int phdrs,
|
||||
* Initialize the ELF file header.
|
||||
*/
|
||||
fill_elf_header(elf, phdrs,
|
||||
view->e_machine, view->e_flags, view->ei_osabi);
|
||||
view->e_machine, view->e_flags);
|
||||
|
||||
/*
|
||||
* Allocate a structure for each thread.
|
||||
@@ -1874,7 +1874,7 @@ static int fill_note_info(struct elfhdr *elf, int phdrs,
|
||||
elf_core_copy_regs(&info->prstatus->pr_reg, regs);
|
||||
|
||||
/* Set up header */
|
||||
fill_elf_header(elf, phdrs, ELF_ARCH, ELF_CORE_EFLAGS, ELF_OSABI);
|
||||
fill_elf_header(elf, phdrs, ELF_ARCH, ELF_CORE_EFLAGS);
|
||||
|
||||
/*
|
||||
* Set up the notes in similar form to SVR4 core dumps made
|
||||
|
@@ -994,6 +994,7 @@ int revalidate_disk(struct gendisk *disk)
|
||||
|
||||
mutex_lock(&bdev->bd_mutex);
|
||||
check_disk_size_change(disk, bdev);
|
||||
bdev->bd_invalidated = 0;
|
||||
mutex_unlock(&bdev->bd_mutex);
|
||||
bdput(bdev);
|
||||
return ret;
|
||||
|
@@ -2359,7 +2359,7 @@ int __block_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf,
|
||||
if (unlikely(ret < 0))
|
||||
goto out_unlock;
|
||||
set_page_dirty(page);
|
||||
wait_on_page_writeback(page);
|
||||
wait_for_stable_page(page);
|
||||
return 0;
|
||||
out_unlock:
|
||||
unlock_page(page);
|
||||
|
@@ -1037,10 +1037,11 @@ static int configfs_dump(struct configfs_dirent *sd, int level)
|
||||
static int configfs_depend_prep(struct dentry *origin,
|
||||
struct config_item *target)
|
||||
{
|
||||
struct configfs_dirent *child_sd, *sd = origin->d_fsdata;
|
||||
struct configfs_dirent *child_sd, *sd;
|
||||
int ret = 0;
|
||||
|
||||
BUG_ON(!origin || !sd);
|
||||
BUG_ON(!origin || !origin->d_fsdata);
|
||||
sd = origin->d_fsdata;
|
||||
|
||||
if (sd->s_element == target) /* Boo-yah */
|
||||
goto out;
|
||||
|
@@ -2065,6 +2065,7 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent)
|
||||
test_opt(sb,DATA_FLAGS) == EXT3_MOUNT_JOURNAL_DATA ? "journal":
|
||||
test_opt(sb,DATA_FLAGS) == EXT3_MOUNT_ORDERED_DATA ? "ordered":
|
||||
"writeback");
|
||||
sb->s_flags |= MS_SNAP_STABLE;
|
||||
|
||||
return 0;
|
||||
|
||||
|
@@ -4968,7 +4968,7 @@ int ext4_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
|
||||
0, len, NULL,
|
||||
ext4_bh_unmapped)) {
|
||||
/* Wait so that we don't change page under IO */
|
||||
wait_on_page_writeback(page);
|
||||
wait_for_stable_page(page);
|
||||
ret = VM_FAULT_LOCKED;
|
||||
goto out;
|
||||
}
|
||||
|
@@ -483,7 +483,7 @@ out:
|
||||
gfs2_holder_uninit(&gh);
|
||||
if (ret == 0) {
|
||||
set_page_dirty(page);
|
||||
wait_on_page_writeback(page);
|
||||
wait_for_stable_page(page);
|
||||
}
|
||||
sb_end_pagefault(inode->i_sb);
|
||||
return block_page_mkwrite_return(ret);
|
||||
|
@@ -126,7 +126,7 @@ static int nilfs_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
|
||||
nilfs_transaction_commit(inode->i_sb);
|
||||
|
||||
mapped:
|
||||
wait_on_page_writeback(page);
|
||||
wait_for_stable_page(page);
|
||||
out:
|
||||
sb_end_pagefault(inode->i_sb);
|
||||
return block_page_mkwrite_return(ret);
|
||||
|
@@ -576,8 +576,6 @@ static int inotify_update_existing_watch(struct fsnotify_group *group,
|
||||
|
||||
/* don't allow invalid bits: we don't want flags set */
|
||||
mask = inotify_arg_to_mask(arg);
|
||||
if (unlikely(!(mask & IN_ALL_EVENTS)))
|
||||
return -EINVAL;
|
||||
|
||||
fsn_mark = fsnotify_find_inode_mark(group, inode);
|
||||
if (!fsn_mark)
|
||||
@@ -629,8 +627,6 @@ static int inotify_new_watch(struct fsnotify_group *group,
|
||||
|
||||
/* don't allow invalid bits: we don't want flags set */
|
||||
mask = inotify_arg_to_mask(arg);
|
||||
if (unlikely(!(mask & IN_ALL_EVENTS)))
|
||||
return -EINVAL;
|
||||
|
||||
tmp_i_mark = kmem_cache_alloc(inotify_inode_mark_cachep, GFP_KERNEL);
|
||||
if (unlikely(!tmp_i_mark))
|
||||
|
@@ -6751,8 +6751,7 @@ int ocfs2_zero_range_for_truncate(struct inode *inode, handle_t *handle,
|
||||
mlog_errno(ret);
|
||||
|
||||
out:
|
||||
if (pages)
|
||||
kfree(pages);
|
||||
kfree(pages);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@@ -1194,6 +1194,7 @@ static int ocfs2_grab_pages_for_write(struct address_space *mapping,
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
wait_for_stable_page(wc->w_pages[i]);
|
||||
|
||||
if (index == target_index)
|
||||
wc->w_target_page = wc->w_pages[i];
|
||||
|
@@ -1471,8 +1471,7 @@ static void o2hb_region_release(struct config_item *item)
|
||||
|
||||
mlog(ML_HEARTBEAT, "hb region release (%s)\n", reg->hr_dev_name);
|
||||
|
||||
if (reg->hr_tmp_block)
|
||||
kfree(reg->hr_tmp_block);
|
||||
kfree(reg->hr_tmp_block);
|
||||
|
||||
if (reg->hr_slot_data) {
|
||||
for (i = 0; i < reg->hr_num_pages; i++) {
|
||||
@@ -1486,8 +1485,7 @@ static void o2hb_region_release(struct config_item *item)
|
||||
if (reg->hr_bdev)
|
||||
blkdev_put(reg->hr_bdev, FMODE_READ|FMODE_WRITE);
|
||||
|
||||
if (reg->hr_slots)
|
||||
kfree(reg->hr_slots);
|
||||
kfree(reg->hr_slots);
|
||||
|
||||
kfree(reg->hr_db_regnum);
|
||||
kfree(reg->hr_db_livenodes);
|
||||
|
@@ -1165,10 +1165,8 @@ out:
|
||||
o2net_debug_del_nst(&nst); /* must be before dropping sc and node */
|
||||
if (sc)
|
||||
sc_put(sc);
|
||||
if (vec)
|
||||
kfree(vec);
|
||||
if (msg)
|
||||
kfree(msg);
|
||||
kfree(vec);
|
||||
kfree(msg);
|
||||
o2net_complete_nsw(nn, &nsw, 0, 0, 0);
|
||||
return ret;
|
||||
}
|
||||
|
@@ -319,9 +319,7 @@ static void dlm_free_ctxt_mem(struct dlm_ctxt *dlm)
|
||||
if (dlm->master_hash)
|
||||
dlm_free_pagevec((void **)dlm->master_hash, DLM_HASH_PAGES);
|
||||
|
||||
if (dlm->name)
|
||||
kfree(dlm->name);
|
||||
|
||||
kfree(dlm->name);
|
||||
kfree(dlm);
|
||||
}
|
||||
|
||||
|
@@ -2545,6 +2545,7 @@ int ocfs2_super_lock(struct ocfs2_super *osb,
|
||||
* everything is up to the caller :) */
|
||||
status = ocfs2_should_refresh_lock_res(lockres);
|
||||
if (status < 0) {
|
||||
ocfs2_cluster_unlock(osb, lockres, level);
|
||||
mlog_errno(status);
|
||||
goto bail;
|
||||
}
|
||||
@@ -2553,8 +2554,10 @@ int ocfs2_super_lock(struct ocfs2_super *osb,
|
||||
|
||||
ocfs2_complete_lock_res_refresh(lockres, status);
|
||||
|
||||
if (status < 0)
|
||||
if (status < 0) {
|
||||
ocfs2_cluster_unlock(osb, lockres, level);
|
||||
mlog_errno(status);
|
||||
}
|
||||
ocfs2_track_lock_refresh(lockres);
|
||||
}
|
||||
bail:
|
||||
|
@@ -282,8 +282,7 @@ search:
|
||||
spin_unlock(&oi->ip_lock);
|
||||
|
||||
out:
|
||||
if (new_emi)
|
||||
kfree(new_emi);
|
||||
kfree(new_emi);
|
||||
}
|
||||
|
||||
static int ocfs2_last_eb_is_empty(struct inode *inode,
|
||||
|
@@ -1234,11 +1234,8 @@ static void ocfs2_queue_recovery_completion(struct ocfs2_journal *journal,
|
||||
/* Though we wish to avoid it, we are in fact safe in
|
||||
* skipping local alloc cleanup as fsck.ocfs2 is more
|
||||
* than capable of reclaiming unused space. */
|
||||
if (la_dinode)
|
||||
kfree(la_dinode);
|
||||
|
||||
if (tl_dinode)
|
||||
kfree(tl_dinode);
|
||||
kfree(la_dinode);
|
||||
kfree(tl_dinode);
|
||||
|
||||
if (qrec)
|
||||
ocfs2_free_quota_recovery(qrec);
|
||||
@@ -1408,8 +1405,7 @@ bail:
|
||||
|
||||
mutex_unlock(&osb->recovery_lock);
|
||||
|
||||
if (rm_quota)
|
||||
kfree(rm_quota);
|
||||
kfree(rm_quota);
|
||||
|
||||
/* no one is callint kthread_stop() for us so the kthread() api
|
||||
* requires that we call do_exit(). And it isn't exported, but
|
||||
|
@@ -476,8 +476,7 @@ out:
|
||||
if (local_alloc_inode)
|
||||
iput(local_alloc_inode);
|
||||
|
||||
if (alloc_copy)
|
||||
kfree(alloc_copy);
|
||||
kfree(alloc_copy);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -534,7 +533,7 @@ int ocfs2_begin_local_alloc_recovery(struct ocfs2_super *osb,
|
||||
mlog_errno(status);
|
||||
|
||||
bail:
|
||||
if ((status < 0) && (*alloc_copy)) {
|
||||
if (status < 0) {
|
||||
kfree(*alloc_copy);
|
||||
*alloc_copy = NULL;
|
||||
}
|
||||
@@ -1290,8 +1289,7 @@ bail:
|
||||
if (main_bm_inode)
|
||||
iput(main_bm_inode);
|
||||
|
||||
if (alloc_copy)
|
||||
kfree(alloc_copy);
|
||||
kfree(alloc_copy);
|
||||
|
||||
if (ac)
|
||||
ocfs2_free_alloc_context(ac);
|
||||
|
@@ -376,7 +376,7 @@ static int o2cb_cluster_connect(struct ocfs2_cluster_connection *conn)
|
||||
dlm_register_eviction_cb(dlm, &priv->op_eviction_cb);
|
||||
|
||||
out_free:
|
||||
if (rc && conn->cc_private)
|
||||
if (rc)
|
||||
kfree(conn->cc_private);
|
||||
|
||||
out:
|
||||
|
@@ -2525,8 +2525,7 @@ static int ocfs2_check_volume(struct ocfs2_super *osb)
|
||||
mlog_errno(status);
|
||||
|
||||
finally:
|
||||
if (local_alloc)
|
||||
kfree(local_alloc);
|
||||
kfree(local_alloc);
|
||||
|
||||
if (status)
|
||||
mlog_errno(status);
|
||||
@@ -2553,8 +2552,7 @@ static void ocfs2_delete_osb(struct ocfs2_super *osb)
|
||||
* we free it here.
|
||||
*/
|
||||
kfree(osb->journal);
|
||||
if (osb->local_alloc_copy)
|
||||
kfree(osb->local_alloc_copy);
|
||||
kfree(osb->local_alloc_copy);
|
||||
kfree(osb->uuid_str);
|
||||
ocfs2_put_dlm_debug(osb->osb_dlm_debug);
|
||||
memset(osb, 0, sizeof(struct ocfs2_super));
|
||||
|
@@ -91,8 +91,7 @@ static struct inode **get_local_system_inode(struct ocfs2_super *osb,
|
||||
} else
|
||||
osb->local_system_inodes = local_system_inodes;
|
||||
spin_unlock(&osb->osb_lock);
|
||||
if (unlikely(free))
|
||||
kfree(free);
|
||||
kfree(free);
|
||||
}
|
||||
|
||||
index = (slot * NUM_LOCAL_SYSTEM_INODES) +
|
||||
|
@@ -1522,6 +1522,7 @@ static int ubifs_vm_page_mkwrite(struct vm_area_struct *vma,
|
||||
ubifs_release_dirty_inode_budget(c, ui);
|
||||
}
|
||||
|
||||
wait_for_stable_page(page);
|
||||
unlock_page(page);
|
||||
return 0;
|
||||
|
||||
|
Odkázat v novém úkolu
Zablokovat Uživatele