mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-22 06:32:08 +00:00
Merge branch 'akpm' (patches from Andrew Morton)
Merge first patch-bomb from Andrew Morton: "Quite a lot of other stuff is banked up awaiting further next->mainline merging, but this batch contains: - Lots of random misc patches - OCFS2 - Most of MM - backlight updates - lib/ updates - printk updates - checkpatch updates - epoll tweaking - rtc updates - hfs - hfsplus - documentation - procfs - update gcov to gcc-4.7 format - IPC" * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (269 commits) ipc, msg: fix message length check for negative values ipc/util.c: remove unnecessary work pending test devpts: plug the memory leak in kill_sb ./Makefile: export initial ramdisk compression config option init/Kconfig: add option to disable kernel compression drivers: w1: make w1_slave::flags long to avoid memory corruption drivers/w1/masters/ds1wm.cuse dev_get_platdata() drivers/memstick/core/ms_block.c: fix unreachable state in h_msb_read_page() drivers/memstick/core/mspro_block.c: fix attributes array allocation drivers/pps/clients/pps-gpio.c: remove redundant of_match_ptr kernel/panic.c: reduce 1 byte usage for print tainted buffer gcov: reuse kbasename helper kernel/gcov/fs.c: use pr_warn() kernel/module.c: use pr_foo() gcov: compile specific gcov implementation based on gcc version gcov: add support for gcc 4.7 gcov format gcov: move gcov structs definitions to a gcc version specific file kernel/taskstats.c: return -ENOMEM when alloc memory fails in add_del_listener() kernel/taskstats.c: add nla_nest_cancel() for failure processing between nla_nest_start() and nla_nest_end() kernel/sysctl_binary.c: use scnprintf() instead of snprintf() ...
This commit is contained in:
commit
5cbb3d216e
287 changed files with 5004 additions and 2378 deletions
15
fs/sync.c
15
fs/sync.c
|
@ -27,10 +27,11 @@
|
|||
* wait == 1 case since in that case write_inode() functions do
|
||||
* sync_dirty_buffer() and thus effectively write one block at a time.
|
||||
*/
|
||||
static int __sync_filesystem(struct super_block *sb, int wait)
|
||||
static int __sync_filesystem(struct super_block *sb, int wait,
|
||||
unsigned long start)
|
||||
{
|
||||
if (wait)
|
||||
sync_inodes_sb(sb);
|
||||
sync_inodes_sb(sb, start);
|
||||
else
|
||||
writeback_inodes_sb(sb, WB_REASON_SYNC);
|
||||
|
||||
|
@ -47,6 +48,7 @@ static int __sync_filesystem(struct super_block *sb, int wait)
|
|||
int sync_filesystem(struct super_block *sb)
|
||||
{
|
||||
int ret;
|
||||
unsigned long start = jiffies;
|
||||
|
||||
/*
|
||||
* We need to be protected against the filesystem going from
|
||||
|
@ -60,17 +62,17 @@ int sync_filesystem(struct super_block *sb)
|
|||
if (sb->s_flags & MS_RDONLY)
|
||||
return 0;
|
||||
|
||||
ret = __sync_filesystem(sb, 0);
|
||||
ret = __sync_filesystem(sb, 0, start);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
return __sync_filesystem(sb, 1);
|
||||
return __sync_filesystem(sb, 1, start);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(sync_filesystem);
|
||||
|
||||
static void sync_inodes_one_sb(struct super_block *sb, void *arg)
|
||||
{
|
||||
if (!(sb->s_flags & MS_RDONLY))
|
||||
sync_inodes_sb(sb);
|
||||
sync_inodes_sb(sb, *((unsigned long *)arg));
|
||||
}
|
||||
|
||||
static void sync_fs_one_sb(struct super_block *sb, void *arg)
|
||||
|
@ -102,9 +104,10 @@ static void fdatawait_one_bdev(struct block_device *bdev, void *arg)
|
|||
SYSCALL_DEFINE0(sync)
|
||||
{
|
||||
int nowait = 0, wait = 1;
|
||||
unsigned long start = jiffies;
|
||||
|
||||
wakeup_flusher_threads(0, WB_REASON_SYNC);
|
||||
iterate_supers(sync_inodes_one_sb, NULL);
|
||||
iterate_supers(sync_inodes_one_sb, &start);
|
||||
iterate_supers(sync_fs_one_sb, &nowait);
|
||||
iterate_supers(sync_fs_one_sb, &wait);
|
||||
iterate_bdevs(fdatawrite_one_bdev, NULL);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue