mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 12:43:29 +02: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:
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);
|
||||
|
Reference in New Issue
Block a user