linux-next.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* linux-next: manual merge of the akpm tree with the vfs tree
@ 2013-04-04  6:26 Stephen Rothwell
  2013-04-04  6:56 ` Andrew Morton
  0 siblings, 1 reply; 29+ messages in thread
From: Stephen Rothwell @ 2013-04-04  6:26 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-next, linux-kernel, Al Viro, Nathan Zimmer

[-- Attachment #1: Type: text/plain, Size: 407 bytes --]

Hi Andrew,

Today's linux-next merge of the akpm tree got a conflict in
fs/proc/generic.c between several commits from the vfs tree and commit
"procfs: improve scaling in proc" from the akpm tree.

I just dropped the akpm tree patch (and the following
"procfs-improve-scaling-in-proc-v5") as the conflicts are a bit complex.

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: linux-next: manual merge of the akpm tree with the vfs tree
  2013-04-04  6:26 linux-next: manual merge of the akpm tree with the vfs tree Stephen Rothwell
@ 2013-04-04  6:56 ` Andrew Morton
  2013-04-04  7:02   ` Andrew Morton
  2013-04-04  8:02   ` Al Viro
  0 siblings, 2 replies; 29+ messages in thread
From: Andrew Morton @ 2013-04-04  6:56 UTC (permalink / raw)
  To: Stephen Rothwell; +Cc: linux-next, linux-kernel, Al Viro, Nathan Zimmer

On Thu, 4 Apr 2013 17:26:48 +1100 Stephen Rothwell <sfr@canb.auug.org.au> wrote:

> Hi Andrew,
> 
> Today's linux-next merge of the akpm tree got a conflict in
> fs/proc/generic.c between several commits from the vfs tree and commit
> "procfs: improve scaling in proc" from the akpm tree.
> 
> I just dropped the akpm tree patch (and the following
> "procfs-improve-scaling-in-proc-v5") as the conflicts are a bit complex.

Well perhaps the vfs tree should start paying some attention to the
rest of the world, particularly after -rc5.

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: linux-next: manual merge of the akpm tree with the vfs tree
  2013-04-04  6:56 ` Andrew Morton
@ 2013-04-04  7:02   ` Andrew Morton
  2013-04-04  8:10     ` Al Viro
  2013-04-04  8:02   ` Al Viro
  1 sibling, 1 reply; 29+ messages in thread
From: Andrew Morton @ 2013-04-04  7:02 UTC (permalink / raw)
  To: Stephen Rothwell, linux-next, linux-kernel, Al Viro, Nathan Zimmer

On Wed, 3 Apr 2013 23:56:34 -0700 Andrew Morton <akpm@linux-foundation.org> wrote:

> On Thu, 4 Apr 2013 17:26:48 +1100 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> 
> > Hi Andrew,
> > 
> > Today's linux-next merge of the akpm tree got a conflict in
> > fs/proc/generic.c between several commits from the vfs tree and commit
> > "procfs: improve scaling in proc" from the akpm tree.
> > 
> > I just dropped the akpm tree patch (and the following
> > "procfs-improve-scaling-in-proc-v5") as the conflicts are a bit complex.
> 
> Well perhaps the vfs tree should start paying some attention to the
> rest of the world, particularly after -rc5.

I can't even find this "lift sb_start_write() out of ->write()".  Not on fsdevel,
not on lkml.  What the heck is it and why was it so important?

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: linux-next: manual merge of the akpm tree with the vfs tree
  2013-04-04  6:56 ` Andrew Morton
  2013-04-04  7:02   ` Andrew Morton
@ 2013-04-04  8:02   ` Al Viro
  2013-04-04 15:43     ` Nathan Zimmer
  1 sibling, 1 reply; 29+ messages in thread
From: Al Viro @ 2013-04-04  8:02 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Stephen Rothwell, linux-next, linux-kernel, Nathan Zimmer

On Wed, Apr 03, 2013 at 11:56:34PM -0700, Andrew Morton wrote:
> On Thu, 4 Apr 2013 17:26:48 +1100 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> 
> > Hi Andrew,
> > 
> > Today's linux-next merge of the akpm tree got a conflict in
> > fs/proc/generic.c between several commits from the vfs tree and commit
> > "procfs: improve scaling in proc" from the akpm tree.
> > 
> > I just dropped the akpm tree patch (and the following
> > "procfs-improve-scaling-in-proc-v5") as the conflicts are a bit complex.
> 
> Well perhaps the vfs tree should start paying some attention to the
> rest of the world, particularly after -rc5.

I'm sorry, but... not in this case.  There are seriously nasty races around
remove_proc_entry()/proc_reg_release() and the whole area needs a rewrite.
Tentative fix is in vfs.git#experimental; I hadn't pushed it into #for-next
yet, but Nathan's patches are definitely going to buggered by any realistic
solution.  For now I'm going for the dumbest variant possible; ->pde_users
will eventually become atomic_t, but it'll be modified by
atomic_inc_unless_negative(), not atomic_inc() and ->proc_fops won't be
zeroed at all.  But before we do that, I want to get that sucker tested and
stabilized - the whole thing is sufficiently convoluted for those races to
stay unnoticed for a long time in the first place.

I am aware of those patches; it's just that they'll need to be redone - the
code being optimized is broken and needs to be fixed.  Longer term, I want
to lift the whole thing into VFS proper; it *can* be done with minimal
overhead and it'll get us a large part of revoke(2) if done right.  Basically,
what I want is a pair of new types - struct revoke and struct revokable.
	* struct file gets a pointer to struct revoke; set in ->open() by
file_revokable(file, revokable) and never changed afterwards.  No locking
is needed to check it.
	* struct revoke contains a pointer back to struct file (never changed)
+ pointer to struct revokable (RCU-protected, zeroed on revoke) + mutex/count
(serializes __fput() vs. revoke() deciding who's going to call ->release() and
who'll be waiting; see pdeo->mutex and pdep->count in #experimental) + cyclic
list anchored in struct revokable (list_del_init() after ->release() had been
done, under revoke->mutex and revokable->lock).
	* struct revokable contains an anchor for aforementioned cyclic
list + spinlock + atomic_t in_use (a-la pde->pde_users) + pointer to
completion + one method (->kick(); see below).  Freed via RCU.
	* start_using(file) is an inlined helper, returning true if
file->f_revoke is NULL; if it's not NULL, we do rcu_read_lock() and look
at file->f_revoke->revokable.  If it's NULL - rcu_read_unlock() and return
false (file had been revoked).  If it's not, atomic_inc_unless_negative()
of revokable->in_use.  Then rcu_read_unlock() and return - true if
->in_use used to be non-negative (file not revoked, revoke will wait) and
false if it was negative (file in process of being revoked).
	* stop_using(file) - inlined helper, does nothing if file->f_revoke
is NULL, otherwise decrements revokable->in_use and if it's reached
BIAS (large negative), complete(revokable->completion).
	* all normal method calls (everything except ->release()) are
turned into
	if (likely(start_using(file)) {
		res = method call
		stop_using(file);
	} else {
		res = <appropriate for method>;
	}
Overhead for non-revokable files is trivial - we just check one field in
struct file and if it's in the same cacheline as ->f_op, we are not going
to see any real delays.
	* new helper - release_revoke(); similar to close_pdeo() in
vfs.git#experimenatal.  __fput() checks ->f_revoke and, if that sucker's
non-NULL, does rcu_read_lock(), checks ->revokable, grabs ->lock on it
and does release_revoke().  If ->f_revoke is NULL, call ->release() as
we do now.  Note that unlike struct pde_opener, these guys would be
created with ->count equal to 1 - IOW, file->f_revoke would contribute to it.
	* do_revoke(revokable) starts with setting ->completion and adding
BIAS to ->in_use; if it non-zero prior to that, call ->kick(revokable) and
wait for completion.  ->kick() should essentially wake up those who are
sleeping in ->read() or ->write() and make them return, be it with EAGAIN
or short read/write.  Empty for procfs, for something like TTY it should
imitate hangup.  That's where driver-specific logics in revoke(2) would
live.  Once do_revoke() has finished waiting, we know that nobody is in
method calls (except possibly ->release()) and nobody will manage to enter
them from now on.  We grab ->lock, pick the first struct revoke from the
list, do release_revoke() to it and keep doing that to these guys until
none is left.

procfs would have struct revokable embedded into proc_dir_entry, with
freeing of those guys RCUd.  It would have file_revokable() done in
proc_reg_open() (that would do allocation of struct revoke, adding it
to the cyclic list, etc.) and set ->f_op to ->proc_fops; no wrappers
needed anymore.  All file_operations instances fed to proc_create()
et.al. would lose ->owner - it's already not needed for those, actually.
remove_proc_entry()/remove_proc_subtree() would call do_revoke() on
everything we are removing.

Getting from there to working revoke(2) is probably not too hard; the
interesting part is what should we associate struct revokable with and
what should revoke(2) in progress do to new attempts to open the damn
device.  Hell knows - not sure what's the right semantics here.

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: linux-next: manual merge of the akpm tree with the vfs tree
  2013-04-04  7:02   ` Andrew Morton
@ 2013-04-04  8:10     ` Al Viro
  2013-04-04 23:18       ` Stephen Rothwell
  0 siblings, 1 reply; 29+ messages in thread
From: Al Viro @ 2013-04-04  8:10 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Stephen Rothwell, linux-next, linux-kernel, Nathan Zimmer

On Thu, Apr 04, 2013 at 12:02:53AM -0700, Andrew Morton wrote:

> > Well perhaps the vfs tree should start paying some attention to the
> > rest of the world, particularly after -rc5.
> 
> I can't even find this "lift sb_start_write() out of ->write()".  Not on fsdevel,
> not on lkml.  What the heck is it and why was it so important?

Deadlocks around splice; see the threads re overlayfs/unionmount/aufs and
deadlocks in their copyup implementations.  See also XFS freeze-related
deadlocks, etc.

The thing is, sb_start_write() is pretty high in locking hierarchy (outside
->i_mutex, etc.), but ->splice_write() and friends had it buried pretty
deep.  With distinctly unpleasant results, including ->..._write() instances
using generic ones (which took the lock) *and* doing some IO outside of those
(ext4, for example; ocfs2 also looked fishy in that respect, IIRC).

The obvious solution is to lift taking that lock out of the methods, which
had been done.  It had been discussed on fsdevel and sat in #experimental for
several weeks; time for it to go into #for-next.

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: linux-next: manual merge of the akpm tree with the vfs tree
  2013-04-04  8:02   ` Al Viro
@ 2013-04-04 15:43     ` Nathan Zimmer
  0 siblings, 0 replies; 29+ messages in thread
From: Nathan Zimmer @ 2013-04-04 15:43 UTC (permalink / raw)
  To: Al Viro; +Cc: Andrew Morton, Stephen Rothwell, linux-next, linux-kernel

On 04/04/2013 03:02 AM, Al Viro wrote:
> On Wed, Apr 03, 2013 at 11:56:34PM -0700, Andrew Morton wrote:
>> On Thu, 4 Apr 2013 17:26:48 +1100 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>>
>>> Hi Andrew,
>>>
>>> Today's linux-next merge of the akpm tree got a conflict in
>>> fs/proc/generic.c between several commits from the vfs tree and commit
>>> "procfs: improve scaling in proc" from the akpm tree.
>>>
>>> I just dropped the akpm tree patch (and the following
>>> "procfs-improve-scaling-in-proc-v5") as the conflicts are a bit complex.
>> Well perhaps the vfs tree should start paying some attention to the
>> rest of the world, particularly after -rc5.
> I'm sorry, but... not in this case.  There are seriously nasty races around
> remove_proc_entry()/proc_reg_release() and the whole area needs a rewrite.
> Tentative fix is in vfs.git#experimental; I hadn't pushed it into #for-next
> yet, but Nathan's patches are definitely going to buggered by any realistic
> solution.
In this case I will resubmit my first patch for moving the kfree in 
proc_reg_release.

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: linux-next: manual merge of the akpm tree with the vfs tree
  2013-04-04  8:10     ` Al Viro
@ 2013-04-04 23:18       ` Stephen Rothwell
  0 siblings, 0 replies; 29+ messages in thread
From: Stephen Rothwell @ 2013-04-04 23:18 UTC (permalink / raw)
  To: Al Viro; +Cc: Andrew Morton, linux-next, linux-kernel, Nathan Zimmer

[-- Attachment #1: Type: text/plain, Size: 1382 bytes --]

Hi Al,

On Thu, 4 Apr 2013 09:10:11 +0100 Al Viro <viro@ZenIV.linux.org.uk> wrote:
>
> On Thu, Apr 04, 2013 at 12:02:53AM -0700, Andrew Morton wrote:
> 
> > > Well perhaps the vfs tree should start paying some attention to the
> > > rest of the world, particularly after -rc5.
> > 
> > I can't even find this "lift sb_start_write() out of ->write()".  Not on fsdevel,
> > not on lkml.  What the heck is it and why was it so important?
> 
> Deadlocks around splice; see the threads re overlayfs/unionmount/aufs and
> deadlocks in their copyup implementations.  See also XFS freeze-related
> deadlocks, etc.
> 
> The thing is, sb_start_write() is pretty high in locking hierarchy (outside
> ->i_mutex, etc.), but ->splice_write() and friends had it buried pretty
> deep.  With distinctly unpleasant results, including ->..._write() instances
> using generic ones (which took the lock) *and* doing some IO outside of those
> (ext4, for example; ocfs2 also looked fishy in that respect, IIRC).
> 
> The obvious solution is to lift taking that lock out of the methods, which
> had been done.  It had been discussed on fsdevel and sat in #experimental for
> several weeks; time for it to go into #for-next.

It would have been useful to put something like that in the commit message ...

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* linux-next: manual merge of the akpm tree with the vfs tree
@ 2020-05-15 11:33 Stephen Rothwell
  0 siblings, 0 replies; 29+ messages in thread
From: Stephen Rothwell @ 2020-05-15 11:33 UTC (permalink / raw)
  To: Andrew Morton, Al Viro
  Cc: Linux Next Mailing List, Linux Kernel Mailing List, Minchan Kim,
	Miklos Szeredi

[-- Attachment #1: Type: text/plain, Size: 13923 bytes --]

Hi all,

Today's linux-next merge of the akpm tree got conflicts in:

  arch/alpha/kernel/syscalls/syscall.tbl
  arch/arm/tools/syscall.tbl
  arch/arm64/include/asm/unistd.h
  arch/arm64/include/asm/unistd32.h
  arch/ia64/kernel/syscalls/syscall.tbl
  arch/m68k/kernel/syscalls/syscall.tbl
  arch/microblaze/kernel/syscalls/syscall.tbl
  arch/mips/kernel/syscalls/syscall_n32.tbl
  arch/mips/kernel/syscalls/syscall_n64.tbl
  arch/parisc/kernel/syscalls/syscall.tbl
  arch/powerpc/kernel/syscalls/syscall.tbl
  arch/s390/kernel/syscalls/syscall.tbl
  arch/sh/kernel/syscalls/syscall.tbl
  arch/sparc/kernel/syscalls/syscall.tbl
  arch/x86/entry/syscalls/syscall_32.tbl
  arch/x86/entry/syscalls/syscall_64.tbl
  arch/xtensa/kernel/syscalls/syscall.tbl
  include/uapi/asm-generic/unistd.h

between commit:

  c8ffd8bcdd28 ("vfs: add faccessat2 syscall")

from the vfs tree and commit:

  b9b2aed54678 ("mm/madvise: introduce process_madvise() syscall: an external memory hinting API")

from the akpm tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc arch/alpha/kernel/syscalls/syscall.tbl
index 598779a35e49,de8334404d5c..000000000000
--- a/arch/alpha/kernel/syscalls/syscall.tbl
+++ b/arch/alpha/kernel/syscalls/syscall.tbl
@@@ -477,7 -477,7 +477,8 @@@
  # 545 reserved for clone3
  547	common	openat2				sys_openat2
  548	common	pidfd_getfd			sys_pidfd_getfd
 -549	common	watch_mount			sys_watch_mount
 -550	common	watch_sb			sys_watch_sb
 -551	common	fsinfo				sys_fsinfo
 -552	common	process_madvise			sys_process_madvise
 +549	common	faccessat2			sys_faccessat2
 +550	common	watch_mount			sys_watch_mount
 +551	common	watch_sb			sys_watch_sb
 +552	common	fsinfo				sys_fsinfo
++553	common	process_madvise			sys_process_madvise
diff --cc arch/arm/tools/syscall.tbl
index 7dd5907463ef,c7a6d0a7f718..000000000000
--- a/arch/arm/tools/syscall.tbl
+++ b/arch/arm/tools/syscall.tbl
@@@ -451,7 -451,7 +451,8 @@@
  435	common	clone3				sys_clone3
  437	common	openat2				sys_openat2
  438	common	pidfd_getfd			sys_pidfd_getfd
 -439	common	watch_mount			sys_watch_mount
 -440	common	watch_sb			sys_watch_sb
 -441	common	fsinfo				sys_fsinfo
 -442	common	process_madvise			sys_process_madvise
 +439	common	faccessat2			sys_faccessat2
 +440	common	watch_mount			sys_watch_mount
 +441	common	watch_sb			sys_watch_sb
 +442	common	fsinfo				sys_fsinfo
++443	common	process_madvise			sys_process_madvise
diff --cc arch/ia64/kernel/syscalls/syscall.tbl
index 457270289902,f256946d6396..000000000000
--- a/arch/ia64/kernel/syscalls/syscall.tbl
+++ b/arch/ia64/kernel/syscalls/syscall.tbl
@@@ -358,7 -358,7 +358,8 @@@
  # 435 reserved for clone3
  437	common	openat2				sys_openat2
  438	common	pidfd_getfd			sys_pidfd_getfd
 -439	common	watch_mount			sys_watch_mount
 -440	common	watch_sb			sys_watch_sb
 -441	common	fsinfo				sys_fsinfo
 -442	common	process_madvise			sys_process_madvise
 +439	common	faccessat2			sys_faccessat2
 +440	common	watch_mount			sys_watch_mount
 +441	common	watch_sb			sys_watch_sb
 +442	common	fsinfo				sys_fsinfo
++443	common	process_madvise			sys_process_madvise
diff --cc arch/m68k/kernel/syscalls/syscall.tbl
index 86872b908471,01d17f551e44..000000000000
--- a/arch/m68k/kernel/syscalls/syscall.tbl
+++ b/arch/m68k/kernel/syscalls/syscall.tbl
@@@ -437,7 -437,7 +437,8 @@@
  435	common	clone3				__sys_clone3
  437	common	openat2				sys_openat2
  438	common	pidfd_getfd			sys_pidfd_getfd
 -439	common	watch_mount			sys_watch_mount
 -440	common	watch_sb			sys_watch_sb
 -441	common	fsinfo				sys_fsinfo
 -442	common	process_madvise			sys_process_madvise
 +439	common	faccessat2			sys_faccessat2
 +440	common	watch_mount			sys_watch_mount
 +441	common	watch_sb			sys_watch_sb
 +442	common	fsinfo				sys_fsinfo
++443	common	process_madvise			sys_process_madvise
diff --cc arch/microblaze/kernel/syscalls/syscall.tbl
index 11e1587078b3,907834833a08..000000000000
--- a/arch/microblaze/kernel/syscalls/syscall.tbl
+++ b/arch/microblaze/kernel/syscalls/syscall.tbl
@@@ -443,7 -443,7 +443,8 @@@
  435	common	clone3				sys_clone3
  437	common	openat2				sys_openat2
  438	common	pidfd_getfd			sys_pidfd_getfd
 -439	common	watch_mount			sys_watch_mount
 -440	common	watch_sb			sys_watch_sb
 -441	common	fsinfo				sys_fsinfo
 -442	common	process_madvise			sys_process_madvise
 +439	common	faccessat2			sys_faccessat2
 +440	common	watch_mount			sys_watch_mount
 +441	common	watch_sb			sys_watch_sb
 +442	common	fsinfo				sys_fsinfo
++443	common	process_madvise			sys_process_madvise
diff --cc arch/mips/kernel/syscalls/syscall_n32.tbl
index 3cde581d0cfb,d38cf3afb962..000000000000
--- a/arch/mips/kernel/syscalls/syscall_n32.tbl
+++ b/arch/mips/kernel/syscalls/syscall_n32.tbl
@@@ -376,7 -376,7 +376,8 @@@
  435	n32	clone3				__sys_clone3
  437	n32	openat2				sys_openat2
  438	n32	pidfd_getfd			sys_pidfd_getfd
 -439	n32	watch_mount			sys_watch_mount
 -440	n32	watch_sb			sys_watch_sb
 -441	n32	fsinfo				sys_fsinfo
 -442	n32	process_madvise			sys_process_madvise
 +439	n32	faccessat2			sys_faccessat2
 +440	n32	watch_mount			sys_watch_mount
 +441	n32	watch_sb			sys_watch_sb
 +442	n32	fsinfo				sys_fsinfo
++443	n32	process_madvise			sys_process_madvise
diff --cc arch/mips/kernel/syscalls/syscall_n64.tbl
index e0270d5700b5,e1135b54f429..000000000000
--- a/arch/mips/kernel/syscalls/syscall_n64.tbl
+++ b/arch/mips/kernel/syscalls/syscall_n64.tbl
@@@ -352,7 -352,7 +352,8 @@@
  435	n64	clone3				__sys_clone3
  437	n64	openat2				sys_openat2
  438	n64	pidfd_getfd			sys_pidfd_getfd
 -439	n64	watch_mount			sys_watch_mount
 -440	n64	watch_sb			sys_watch_sb
 -441	n64	fsinfo				sys_fsinfo
 -442	n64	process_madvise			sys_process_madvise
 +439	n64	faccessat2			sys_faccessat2
 +440	n64	watch_mount			sys_watch_mount
 +441	n64	watch_sb			sys_watch_sb
 +442	n64	fsinfo				sys_fsinfo
++443	n64	process_madvise			sys_process_madvise
diff --cc arch/parisc/kernel/syscalls/syscall.tbl
index 6e6b2114065f,ab98693b4a14..000000000000
--- a/arch/parisc/kernel/syscalls/syscall.tbl
+++ b/arch/parisc/kernel/syscalls/syscall.tbl
@@@ -435,7 -435,7 +435,8 @@@
  435	common	clone3				sys_clone3_wrapper
  437	common	openat2				sys_openat2
  438	common	pidfd_getfd			sys_pidfd_getfd
 -439	common	watch_mount			sys_watch_mount
 -440	common	watch_sb			sys_watch_sb
 -441	common	fsinfo				sys_fsinfo
 -442	common	process_madvise			sys_process_madvise
 +439	common	faccessat2			sys_faccessat2
 +440	common	watch_mount			sys_watch_mount
 +441	common	watch_sb			sys_watch_sb
 +442	common	fsinfo				sys_fsinfo
++443	common	process_madvise			sys_process_madvise
diff --cc arch/powerpc/kernel/syscalls/syscall.tbl
index 4dda0f1ce513,284a43fbf343..000000000000
--- a/arch/powerpc/kernel/syscalls/syscall.tbl
+++ b/arch/powerpc/kernel/syscalls/syscall.tbl
@@@ -527,7 -527,7 +527,8 @@@
  435	spu	clone3				sys_ni_syscall
  437	common	openat2				sys_openat2
  438	common	pidfd_getfd			sys_pidfd_getfd
 -439	common	watch_mount			sys_watch_mount
 -440	common	watch_sb			sys_watch_sb
 -441	common	fsinfo				sys_fsinfo
 -442	common	process_madvise			sys_process_madvise
 +439	common	faccessat2			sys_faccessat2
 +440	common	watch_mount			sys_watch_mount
 +441	common	watch_sb			sys_watch_sb
 +442	common	fsinfo				sys_fsinfo
++443	common	process_madvise			sys_process_madvise
diff --cc arch/s390/kernel/syscalls/syscall.tbl
index a750ad6821f1,67d3f7276bc1..000000000000
--- a/arch/s390/kernel/syscalls/syscall.tbl
+++ b/arch/s390/kernel/syscalls/syscall.tbl
@@@ -440,7 -440,7 +440,8 @@@
  435  common	clone3			sys_clone3			sys_clone3
  437  common	openat2			sys_openat2			sys_openat2
  438  common	pidfd_getfd		sys_pidfd_getfd			sys_pidfd_getfd
 -439	common	watch_mount		sys_watch_mount			sys_watch_mount
 -440	common	watch_sb		sys_watch_sb			sys_watch_sb
 -441  common	fsinfo			sys_fsinfo			sys_fsinfo
 -442  common	process_madvise		sys_process_madvise		sys_process_madvise
 +439  common	faccessat2		sys_faccessat2			sys_faccessat2
 +440	common	watch_mount		sys_watch_mount			sys_watch_mount
 +441	common	watch_sb		sys_watch_sb			sys_watch_sb
 +442  common	fsinfo			sys_fsinfo			sys_fsinfo
++443  common	process_madvise		sys_process_madvise		sys_process_madvise
diff --cc arch/sh/kernel/syscalls/syscall.tbl
index 4d7b900bb350,a1056f55d362..000000000000
--- a/arch/sh/kernel/syscalls/syscall.tbl
+++ b/arch/sh/kernel/syscalls/syscall.tbl
@@@ -440,7 -440,7 +440,8 @@@
  # 435 reserved for clone3
  437	common	openat2				sys_openat2
  438	common	pidfd_getfd			sys_pidfd_getfd
 -439	common	watch_mount			sys_watch_mount
 -440	common	watch_sb			sys_watch_sb
 -441	common	fsinfo				sys_fsinfo
 -442	common	process_madvise			sys_process_madvise
 +439	common	faccessat2			sys_faccessat2
 +440	common	watch_mount			sys_watch_mount
 +441	common	watch_sb			sys_watch_sb
 +442	common	fsinfo				sys_fsinfo
++443	common	process_madvise			sys_process_madvise
diff --cc arch/sparc/kernel/syscalls/syscall.tbl
index 6b25b0a33834,a5753e45393e..000000000000
--- a/arch/sparc/kernel/syscalls/syscall.tbl
+++ b/arch/sparc/kernel/syscalls/syscall.tbl
@@@ -483,7 -483,7 +483,8 @@@
  # 435 reserved for clone3
  437	common	openat2			sys_openat2
  438	common	pidfd_getfd			sys_pidfd_getfd
 -439	common	watch_mount			sys_watch_mount
 -440	common	watch_sb			sys_watch_sb
 -441	common	fsinfo				sys_fsinfo
 -442	common	process_madvise			sys_process_madvise
 +439	common	faccessat2			sys_faccessat2
 +440	common	watch_mount			sys_watch_mount
 +441	common	watch_sb			sys_watch_sb
 +442	common	fsinfo				sys_fsinfo
++443	common	process_madvise			sys_process_madvise
diff --cc arch/x86/entry/syscalls/syscall_32.tbl
index 65d3497d1eb8,698c661a0c3e..000000000000
--- a/arch/x86/entry/syscalls/syscall_32.tbl
+++ b/arch/x86/entry/syscalls/syscall_32.tbl
@@@ -442,7 -442,7 +442,8 @@@
  435	i386	clone3			sys_clone3
  437	i386	openat2			sys_openat2
  438	i386	pidfd_getfd		sys_pidfd_getfd
 -439	i386	watch_mount		sys_watch_mount
 -440	i386	watch_sb		sys_watch_sb
 -441	i386	fsinfo			sys_fsinfo
 -442	i386	process_madvise		sys_process_madvise
 +439	i386	faccessat2		sys_faccessat2
 +440	i386	watch_mount		sys_watch_mount
 +441	i386	watch_sb		sys_watch_sb
 +442	i386	fsinfo			sys_fsinfo
++443	i386	process_madvise		sys_process_madvise
diff --cc arch/x86/entry/syscalls/syscall_64.tbl
index 3100ed45b108,139ae65c6d75..000000000000
--- a/arch/x86/entry/syscalls/syscall_64.tbl
+++ b/arch/x86/entry/syscalls/syscall_64.tbl
@@@ -359,10 -359,10 +359,11 @@@
  435	common	clone3			sys_clone3
  437	common	openat2			sys_openat2
  438	common	pidfd_getfd		sys_pidfd_getfd
 -439	common	watch_mount		sys_watch_mount
 -440	common	watch_sb		sys_watch_sb
 -441	common	fsinfo			sys_fsinfo
 -442	common	process_madvise		sys_process_madvise
 +439	common	faccessat2		sys_faccessat2
 +440	common	watch_mount		sys_watch_mount
 +441	common	watch_sb		sys_watch_sb
 +442	common	fsinfo			sys_fsinfo
++443	common	process_madvise		sys_process_madvise
  
  #
  # x32-specific system call numbers start at 512 to avoid cache impact
diff --cc arch/xtensa/kernel/syscalls/syscall.tbl
index fc382476421f,1727cf0243e0..000000000000
--- a/arch/xtensa/kernel/syscalls/syscall.tbl
+++ b/arch/xtensa/kernel/syscalls/syscall.tbl
@@@ -408,7 -408,7 +408,8 @@@
  435	common	clone3				sys_clone3
  437	common	openat2				sys_openat2
  438	common	pidfd_getfd			sys_pidfd_getfd
 -439	common	watch_mount			sys_watch_mount
 -440	common	watch_sb			sys_watch_sb
 -441	common	fsinfo				sys_fsinfo
 -442	common	process_madvise			sys_process_madvise
 +439	common	faccessat2			sys_faccessat2
 +440	common	watch_mount			sys_watch_mount
 +441	common	watch_sb			sys_watch_sb
 +442	common	fsinfo				sys_fsinfo
++443	common	process_madvise			sys_process_madvise
diff --git a/arch/arm64/include/asm/unistd.h b/arch/arm64/include/asm/unistd.h
index 949788f5ba40..d1f7d35f986e 100644
--- a/arch/arm64/include/asm/unistd.h
+++ b/arch/arm64/include/asm/unistd.h
@@ -38,7 +38,7 @@
 #define __ARM_NR_compat_set_tls		(__ARM_NR_COMPAT_BASE + 5)
 #define __ARM_NR_COMPAT_END		(__ARM_NR_COMPAT_BASE + 0x800)
 
-#define __NR_compat_syscalls		443
+#define __NR_compat_syscalls		444
 #endif
 
 #define __ARCH_WANT_SYS_CLONE
diff --git a/arch/arm64/include/asm/unistd32.h b/arch/arm64/include/asm/unistd32.h
index 13e2750e6f2e..95c37f111fd5 100644
--- a/arch/arm64/include/asm/unistd32.h
+++ b/arch/arm64/include/asm/unistd32.h
@@ -891,7 +891,7 @@ __SYSCALL(__NR_watch_mount, sys_watch_mount)
 __SYSCALL(__NR_watch_sb, sys_watch_sb)
 #define __NR_fsinfo 442
 __SYSCALL(__NR_fsinfo, sys_fsinfo)
-#define __NR_process_madvise 442
+#define __NR_process_madvise 443
 __SYSCALL(__NR_process_madvise, process_madvise)
 
 /*
diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h
index 8b4432641ab2..5a4973137d8c 100644
--- a/include/uapi/asm-generic/unistd.h
+++ b/include/uapi/asm-generic/unistd.h
@@ -863,11 +863,11 @@ __SYSCALL(__NR_watch_mount, sys_watch_mount)
 __SYSCALL(__NR_watch_sb, sys_watch_sb)
 #define __NR_fsinfo 442
 __SYSCALL(__NR_fsinfo, sys_fsinfo)
-#define __NR_process_madvise 442
+#define __NR_process_madvise 443
 __SYSCALL(__NR_process_madvise, sys_process_madvise)
 
 #undef __NR_syscalls
-#define __NR_syscalls 443
+#define __NR_syscalls 444
 
 /*
  * 32 bit systems traditionally used different

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* linux-next: manual merge of the akpm tree with the vfs tree
@ 2019-04-11  6:21 Stephen Rothwell
  0 siblings, 0 replies; 29+ messages in thread
From: Stephen Rothwell @ 2019-04-11  6:21 UTC (permalink / raw)
  To: Andrew Morton, Al Viro
  Cc: Linux Next Mailing List, Linux Kernel Mailing List,
	Chengguang Xu, Sabyasachi Gupta

[-- Attachment #1: Type: text/plain, Size: 1081 bytes --]

Hi all,

Today's linux-next merge of the akpm tree got a conflict in:

  fs/block_dev.c

between commit:

  6d46d2934aea ("fs/block_dev.c: remove unused include")

from the vfs tree and patch:

  "fs/block_dev.c: Remove duplicate header"

from the akpm tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc fs/block_dev.c
index 6b584817d461,bc80d165f0c0..000000000000
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@@ -29,7 -29,7 +29,6 @@@
  #include <linux/namei.h>
  #include <linux/log2.h>
  #include <linux/cleancache.h>
- #include <linux/dax.h>
 -#include <linux/badblocks.h>
  #include <linux/task_io_accounting_ops.h>
  #include <linux/falloc.h>
  #include <linux/uaccess.h>

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* linux-next: manual merge of the akpm tree with the vfs tree
@ 2018-05-17  6:36 Stephen Rothwell
  0 siblings, 0 replies; 29+ messages in thread
From: Stephen Rothwell @ 2018-05-17  6:36 UTC (permalink / raw)
  To: Andrew Morton, Al Viro
  Cc: Linux-Next Mailing List, Linux Kernel Mailing List,
	Christoph Hellwig, Joe Perches

[-- Attachment #1: Type: text/plain, Size: 1949 bytes --]

Hi all,

Today's linux-next merge of the akpm-current tree got a conflict in:

  mm/vmalloc.c

between commits:

  fddda2b7b521 ("proc: introduce proc_create_seq{,_data}")
  44414d82cfe0 ("proc: introduce proc_create_seq_private")

from the vfs tree and patch:

  "mm: use octal not symbolic permissions"

from the akpm tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc mm/vmalloc.c
index 89efac3a020e,abf54a3e71e6..000000000000
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@@ -2738,14 -2738,25 +2738,14 @@@ static const struct seq_operations vmal
  	.show = s_show,
  };
  
 -static int vmalloc_open(struct inode *inode, struct file *file)
 +static int __init proc_vmalloc_init(void)
  {
  	if (IS_ENABLED(CONFIG_NUMA))
- 		proc_create_seq_private("vmallocinfo", S_IRUSR, NULL,
 -		return seq_open_private(file, &vmalloc_op,
 -					nr_node_ids * sizeof(unsigned int));
++		proc_create_seq_private("vmallocinfo", 0400, NULL,
 +				&vmalloc_op,
 +				nr_node_ids * sizeof(unsigned int), NULL);
  	else
- 		proc_create_seq("vmallocinfo", S_IRUSR, NULL, &vmalloc_op);
 -		return seq_open(file, &vmalloc_op);
 -}
 -
 -static const struct file_operations proc_vmalloc_operations = {
 -	.open		= vmalloc_open,
 -	.read		= seq_read,
 -	.llseek		= seq_lseek,
 -	.release	= seq_release_private,
 -};
 -
 -static int __init proc_vmalloc_init(void)
 -{
 -	proc_create("vmallocinfo", 0400, NULL, &proc_vmalloc_operations);
++		proc_create_seq("vmallocinfo", 0400, NULL, &vmalloc_op);
  	return 0;
  }
  module_init(proc_vmalloc_init);

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* linux-next: manual merge of the akpm tree with the vfs tree
@ 2018-01-02  6:46 Stephen Rothwell
  0 siblings, 0 replies; 29+ messages in thread
From: Stephen Rothwell @ 2018-01-02  6:46 UTC (permalink / raw)
  To: Andrew Morton, Al Viro
  Cc: Linux-Next Mailing List, Linux Kernel Mailing List, Giuseppe Scrivano

Hi Andrew,

Today's linux-next merge of the akpm tree got a conflict in:

  ipc/mqueue.c

between commits:

  3ec41d6c2257 ("tidy do_mq_open() up a bit")
  946086abeddf ("mqueue: switch to on-demand creation of internal mount")

from the vfs tree and patch:

  "ipc, mqueue: lazy call kern_mount_data in new namespaces"

from the akpm tree.

I fixed it up (I could not see how to fix this obviously, so I just
dropped the akpm tree patch) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

-- 
Cheers,
Stephen Rothwell

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: linux-next: manual merge of the akpm tree with the vfs tree
  2016-12-12  5:52 Stephen Rothwell
@ 2016-12-12  8:14 ` Ian Kent
  0 siblings, 0 replies; 29+ messages in thread
From: Ian Kent @ 2016-12-12  8:14 UTC (permalink / raw)
  To: Stephen Rothwell, Al Viro, Andrew Morton; +Cc: linux-next, linux-kernel

On Mon, 2016-12-12 at 16:52 +1100, Stephen Rothwell wrote:
> Hi all,
> 
> Al let me know that he had put a newer version of the autofs patches
> into his vfs tree, so I have dropped the following patches from the akpm
> tree today:
> 
>   vfs: change d_manage() to take a struct path
>   vfs: add path_is_mountpoint() helper
>   vfs: fix boolreturn.cocci warnings
>   vfs: add path_has_submounts()
>   autofs: change autofs4_expire_wait() to take struct path
>   autofs: change autofs4_wait() to take struct path
>   autofs: use path_is_mountpoint() to fix unreliable d_mountpoint() checks
>   autofs: use path_has_submounts() to fix unreliable have_submount() checks
>   vfs: remove unused have_submounts() function
>   vfs: merge path_is_mountpoint() and path_is_mountpoint_rcu()
>   autofs: make struct path const in autofs4_dir_open()
>   autofs: change struct path to const in autofs4_expire_wait() and
> autofs4_wait()
>   vfs: change struct path to const in d_manage()
>   vfs: constify path parameter of path_has_submounts()
>   autofs: don't hold spinlock over direct mount expire
>   vfs: make may_umount_tree() mount propagation aware
>   vfs-make-may_umount_tree-mount-propogation-aware-checkpatch-fixes
> 
> I hope that was the correct ones.

Hi Stephen,

Yes, Al merged a number of the patches, fixed a couple of problems, and rejected
one which I'm still working on.

The list looks right to me.
That's great, thanks,
Ian

^ permalink raw reply	[flat|nested] 29+ messages in thread

* linux-next: manual merge of the akpm tree with the vfs tree
@ 2016-12-12  5:52 Stephen Rothwell
  2016-12-12  8:14 ` Ian Kent
  0 siblings, 1 reply; 29+ messages in thread
From: Stephen Rothwell @ 2016-12-12  5:52 UTC (permalink / raw)
  To: Al Viro, Andrew Morton; +Cc: linux-next, linux-kernel, Ian Kent

Hi all,

Al let me know that he had put a newer version of the autofs patches
into his vfs tree, so I have dropped the following patches from the akpm
tree today:

  vfs: change d_manage() to take a struct path
  vfs: add path_is_mountpoint() helper
  vfs: fix boolreturn.cocci warnings
  vfs: add path_has_submounts()
  autofs: change autofs4_expire_wait() to take struct path
  autofs: change autofs4_wait() to take struct path
  autofs: use path_is_mountpoint() to fix unreliable d_mountpoint() checks
  autofs: use path_has_submounts() to fix unreliable have_submount() checks
  vfs: remove unused have_submounts() function
  vfs: merge path_is_mountpoint() and path_is_mountpoint_rcu()
  autofs: make struct path const in autofs4_dir_open()
  autofs: change struct path to const in autofs4_expire_wait() and autofs4_wait()
  vfs: change struct path to const in d_manage()
  vfs: constify path parameter of path_has_submounts()
  autofs: don't hold spinlock over direct mount expire
  vfs: make may_umount_tree() mount propagation aware
  vfs-make-may_umount_tree-mount-propogation-aware-checkpatch-fixes

I hope that was the correct ones.
-- 
Cheers,
Stephen Rothwell

^ permalink raw reply	[flat|nested] 29+ messages in thread

* linux-next: manual merge of the akpm tree with the vfs tree
@ 2014-08-08  6:20 Stephen Rothwell
  0 siblings, 0 replies; 29+ messages in thread
From: Stephen Rothwell @ 2014-08-08  6:20 UTC (permalink / raw)
  To: Andrew Morton, Al Viro; +Cc: linux-next, linux-kernel, Joe Perches

[-- Attachment #1: Type: text/plain, Size: 1579 bytes --]

Hi Andrew,

Today's linux-next merge of the akpm tree got a conflict in
include/linux/fs.h between commit ed44724b79d8 ("acct: switch to
__kernel_write()") from the vfs tree and commit "fs.h: remove
unnecessary extern prototypes" from the akpm tree.

I fixed it up (see below) and can carry the fix as necessary (no action
is required).

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc include/linux/fs.h
index 94187721ad41,dccf4bcc21bb..000000000000
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@@ -2357,16 -2356,15 +2357,16 @@@ static inline void i_readcount_inc(stru
  	return;
  }
  #endif
- extern int do_pipe_flags(int *, int);
+ int do_pipe_flags(int *, int);
  
- extern int kernel_read(struct file *, loff_t, char *, unsigned long);
- extern ssize_t kernel_write(struct file *, const char *, size_t, loff_t);
- extern ssize_t __kernel_write(struct file *, const char *, size_t, loff_t *);
- extern struct file * open_exec(const char *);
+ int kernel_read(struct file *, loff_t, char *, unsigned long);
+ ssize_t kernel_write(struct file *, const char *, size_t, loff_t);
++ssize_t __kernel_write(struct file *, const char *, size_t, loff_t *);
+ struct file * open_exec(const char *);
   
  /* fs/dcache.c -- generic fs support functions */
- extern int is_subdir(struct dentry *, struct dentry *);
- extern int path_is_under(struct path *, struct path *);
+ int is_subdir(struct dentry *, struct dentry *);
+ int path_is_under(struct path *, struct path *);
  
  #include <linux/err.h>
  

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* linux-next: manual merge of the akpm tree with the vfs tree
@ 2013-09-10  4:41 Stephen Rothwell
  0 siblings, 0 replies; 29+ messages in thread
From: Stephen Rothwell @ 2013-09-10  4:41 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-next, linux-kernel, Al Viro, Dave Chinner

[-- Attachment #1: Type: text/plain, Size: 1186 bytes --]

Hi Andrew,

Today's linux-next merge of the akpm tree got a conflict in fs/super.c
between commit d040790391f2 ("prune_super(): sb->s_op is never NULL")
from the vfs tree and commit "fs: convert inode and dentry shrinking to
be node aware" from the akpm tree.

I fixed it up (see below) and can carry the fix as necessary (no action
is required).

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc fs/super.c
index cd3c2cd,efeabe8..0000000
--- a/fs/super.c
+++ b/fs/super.c
@@@ -75,11 -75,11 +75,11 @@@ static unsigned long super_cache_scan(s
  	if (!grab_super_passive(sb))
  		return SHRINK_STOP;
  
 -	if (sb->s_op && sb->s_op->nr_cached_objects)
 +	if (sb->s_op->nr_cached_objects)
- 		fs_objects = sb->s_op->nr_cached_objects(sb);
+ 		fs_objects = sb->s_op->nr_cached_objects(sb, sc->nid);
  
- 	inodes = list_lru_count(&sb->s_inode_lru);
- 	dentries = list_lru_count(&sb->s_dentry_lru);
+ 	inodes = list_lru_count_node(&sb->s_inode_lru, sc->nid);
+ 	dentries = list_lru_count_node(&sb->s_dentry_lru, sc->nid);
  	total_objects = dentries + inodes + fs_objects + 1;
  
  	/* proportion the scan between the caches */

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* linux-next: manual merge of the akpm tree with the vfs tree
@ 2013-09-05  8:56 Stephen Rothwell
  0 siblings, 0 replies; 29+ messages in thread
From: Stephen Rothwell @ 2013-09-05  8:56 UTC (permalink / raw)
  To: Andrew Morton
  Cc: linux-next, linux-kernel, Dave Chinner, Christoph Hellwig, Al Viro

[-- Attachment #1: Type: text/plain, Size: 1123 bytes --]

Hi Andrew,

Today's linux-next merge of the akpm tree got a conflict in
include/linux/fs.h between commit 7b7a8665edd8 ("direct-io: Implement
generic deferred AIO completions") from the vfs tree and commit "dcache:
convert to use new lru list infrastructure" from the akpm tree.

I fixed it up (see below) and can carry the fix as necessary (no action
is required).

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc include/linux/fs.h
index ee1a9b2,b778968..0000000
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@@ -1421,8 -1413,12 +1413,15 @@@ struct super_block 
  	/* Being remounted read-only */
  	int s_readonly_remount;
  
 +	/* AIO completions deferred from interrupt context */
 +	struct workqueue_struct *s_dio_done_wq;
++
+ 	/*
+ 	 * Keep the lru lists last in the structure so they always sit on their
+ 	 * own individual cachelines.
+ 	 */
+ 	struct list_lru		s_dentry_lru ____cacheline_aligned_in_smp;
+ 	struct list_lru		s_inode_lru ____cacheline_aligned_in_smp;
  };
  
  extern struct timespec current_fs_time(struct super_block *sb);

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* linux-next: manual merge of the akpm tree with the vfs tree
@ 2013-04-30  5:54 Stephen Rothwell
  0 siblings, 0 replies; 29+ messages in thread
From: Stephen Rothwell @ 2013-04-30  5:54 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-next, linux-kernel, Al Viro, Davidlohr Bueso

[-- Attachment #1: Type: text/plain, Size: 2961 bytes --]

Hi Andrew,

Today's linux-next merge of the akpm tree got a conflict in ipc/util.c
between commit 823a5ed16606 ("ipc_schedule_free() can do vfree() now")
from the vfs tree and commit "ipc: make refcounter atomic" from the akpm
tree.

I fixed it up (I hope - see below) and can carry the fix as necessary (no
action is required).

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc ipc/util.c
index 6515f95,5e60ebd..0000000
--- a/ipc/util.c
+++ b/ipc/util.c
@@@ -477,7 -478,8 +477,7 @@@ void ipc_free(void* ptr, int size
   */
  struct ipc_rcu_hdr
  {
- 	int refcount;
+ 	atomic_t refcount;
 -	int is_vmalloc;
  	void *data[0];
  };
  
@@@ -497,30 -516,48 +497,28 @@@ struct ipc_rcu_grac
   *	@size: size desired
   *
   *	Allocate memory for the rcu header structure +  the object.
-  *	Returns the pointer to the object.
-  *	NULL is returned if the allocation fails. 
+  *	Returns the pointer to the object or NULL upon failure.
   */
-  
- void* ipc_rcu_alloc(int size)
+ void *ipc_rcu_alloc(int size)
  {
 -	void* out;
 -
 -	/*
 -	 * We prepend the allocation with the rcu struct, and
 -	 * workqueue if necessary (for vmalloc).
 +	size_t len = size + HDRLEN;
 +	void *out;
 +	/* 
 +	 * We prepend the allocation with the rcu struct
  	 */
 -	if (rcu_use_vmalloc(size)) {
 -		out = vmalloc(HDRLEN_VMALLOC + size);
 -		if (!out)
 -			goto done;
 -
 -		out += HDRLEN_VMALLOC;
 -		container_of(out, struct ipc_rcu_hdr, data)->is_vmalloc = 1;
 -	} else {
 -		out = kmalloc(HDRLEN_KMALLOC + size, GFP_KERNEL);
 -		if (!out)
 -			goto done;
 -
 -		out += HDRLEN_KMALLOC;
 -		container_of(out, struct ipc_rcu_hdr, data)->is_vmalloc = 0;
 +	out = (len > PAGE_SIZE) ? vmalloc(len) : kmalloc(len, GFP_KERNEL);
 +	if (out) {
 +		out += HDRLEN;
- 		container_of(out, struct ipc_rcu_hdr, data)->refcount = 1;
++		atomic_set(&container_of(out, struct ipc_rcu_hdr, data)->refcount, 1);
  	}
  	return out;
  }
  
- void ipc_rcu_getref(void *ptr)
+ int ipc_rcu_getref(void *ptr)
  {
- 	container_of(ptr, struct ipc_rcu_hdr, data)->refcount++;
+ 	return atomic_inc_not_zero(&container_of(ptr, struct ipc_rcu_hdr, data)->refcount);
  }
  
 -static void ipc_do_vfree(struct work_struct *work)
 -{
 -	vfree(container_of(work, struct ipc_rcu_sched, work));
 -}
 -
  /**
   * ipc_schedule_free - free ipc + rcu space
   * @head: RCU callback structure for queued work
@@@ -534,10 -580,10 +532,10 @@@ static void ipc_schedule_free(struct rc
  
  void ipc_rcu_putref(void *ptr)
  {
- 	if (--container_of(ptr, struct ipc_rcu_hdr, data)->refcount > 0)
+ 	if (!atomic_dec_and_test(&container_of(ptr, struct ipc_rcu_hdr, data)->refcount))
  		return;
  
 -	if (container_of(ptr, struct ipc_rcu_hdr, data)->is_vmalloc) {
 +	if (is_vmalloc_addr(ptr)) {
  		call_rcu(&container_of(ptr, struct ipc_rcu_grace, data)->rcu,
  				ipc_schedule_free);
  	} else {

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* linux-next: manual merge of the akpm tree with the vfs tree
@ 2013-04-29  8:34 Stephen Rothwell
  0 siblings, 0 replies; 29+ messages in thread
From: Stephen Rothwell @ 2013-04-29  8:34 UTC (permalink / raw)
  To: Andrew Morton
  Cc: linux-next, linux-kernel, David Howells, Al Viro, HoSung Jung

[-- Attachment #1: Type: text/plain, Size: 798 bytes --]

Hi Andrew,

Today's linux-next merge of the akpm tree got a conflict in ipc/msgutil.c
between commit b3ecda5869da ("proc: Split the namespace stuff out into
linux/proc_ns.h") from the vfs tree and commit "ipc/msgutil.c: use
linux/uaccess.h" from the akpm tree.

I fixed it up (see below) and can carry the fix as necessary (no action
is required).

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc ipc/msgutil.c
index a53f38f,d43439e..0000000
--- a/ipc/msgutil.c
+++ b/ipc/msgutil.c
@@@ -16,8 -16,8 +16,8 @@@
  #include <linux/msg.h>
  #include <linux/ipc_namespace.h>
  #include <linux/utsname.h>
 -#include <linux/proc_fs.h>
 +#include <linux/proc_ns.h>
- #include <asm/uaccess.h>
+ #include <linux/uaccess.h>
  
  #include "util.h"
  

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* linux-next: manual merge of the akpm tree with the vfs tree
@ 2013-04-29  8:25 Stephen Rothwell
  0 siblings, 0 replies; 29+ messages in thread
From: Stephen Rothwell @ 2013-04-29  8:25 UTC (permalink / raw)
  To: Andrew Morton
  Cc: linux-next, linux-kernel, Joonsoo Kim, David Howells, Al Viro

[-- Attachment #1: Type: text/plain, Size: 3255 bytes --]

Hi Andrew,

Today's linux-next merge of the akpm tree got a conflict in
fs/proc/internal.h between commit 4608da4a9433 ("proc: Move non-public
stuff from linux/proc_fs.h to fs/proc/internal.h") from the vfs tree and
commit "mm, vmalloc: move get_vmalloc_info() to vmalloc.c" from the akpm
tree.

I fixed it up (see below) and can carry the fix as necessary (no action
is required).

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc fs/proc/internal.h
index 04255b6,47eac85..0000000
--- a/fs/proc/internal.h
+++ b/fs/proc/internal.h
@@@ -191,56 -157,36 +191,35 @@@ static inline struct proc_dir_entry *pd
  	atomic_inc(&pde->count);
  	return pde;
  }
 -void pde_put(struct proc_dir_entry *pde);
 -
 -int proc_fill_super(struct super_block *);
 -struct inode *proc_get_inode(struct super_block *, struct proc_dir_entry *);
 -int proc_remount(struct super_block *sb, int *flags, char *data);
 +extern void pde_put(struct proc_dir_entry *);
  
  /*
 - * These are generic /proc routines that use the internal
 - * "struct proc_dir_entry" tree to traverse the filesystem.
 - *
 - * The /proc root directory has extended versions to take care
 - * of the /proc/<pid> subdirectories.
 + * inode.c
   */
 -int proc_readdir(struct file *, void *, filldir_t);
 -struct dentry *proc_lookup(struct inode *, struct dentry *, unsigned int);
 +struct pde_opener {
 +	struct file *file;
 +	struct list_head lh;
 +	int closing;
 +	struct completion *c;
 +};
  
 +extern const struct inode_operations proc_pid_link_inode_operations;
  
 +extern void proc_init_inodecache(void);
 +extern struct inode *proc_get_inode(struct super_block *, struct proc_dir_entry *);
 +extern int proc_fill_super(struct super_block *);
 +extern void proc_entry_rundown(struct proc_dir_entry *);
  
 -/* Lookups */
 -typedef struct dentry *instantiate_t(struct inode *, struct dentry *,
 -				struct task_struct *, const void *);
 -int proc_fill_cache(struct file *filp, void *dirent, filldir_t filldir,
 -	const char *name, int len,
 -	instantiate_t instantiate, struct task_struct *task, const void *ptr);
 -int pid_revalidate(struct dentry *dentry, unsigned int flags);
 -struct inode *proc_pid_make_inode(struct super_block * sb, struct task_struct *task);
 -extern const struct dentry_operations pid_dentry_operations;
 -int pid_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat);
 -int proc_setattr(struct dentry *dentry, struct iattr *attr);
 +/*
-  * mmu.c
-  */
- struct vmalloc_info {
- 	unsigned long	used;
- 	unsigned long	largest_chunk;
- };
- 
- #ifdef CONFIG_MMU
- #define VMALLOC_TOTAL (VMALLOC_END - VMALLOC_START)
- extern void get_vmalloc_info(struct vmalloc_info *);
- 
- #else
- #define VMALLOC_TOTAL 0UL
- static inline void get_vmalloc_info(struct vmalloc_info *vmi)
- {
- 	vmi->used = 0;
- 	vmi->largest_chunk = 0;
- }
- #endif
- 
- /*
 + * proc_devtree.c
 + */
 +#ifdef CONFIG_PROC_DEVICETREE
 +extern void proc_device_tree_init(void);
 +#endif
  
 +/*
 + * proc_namespaces.c
 + */
  extern const struct inode_operations proc_ns_dir_inode_operations;
  extern const struct file_operations proc_ns_dir_operations;
  

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: linux-next: manual merge of the akpm tree with the vfs tree
  2013-04-04  6:12 Stephen Rothwell
@ 2013-04-04 12:33 ` Jan Kara
  0 siblings, 0 replies; 29+ messages in thread
From: Jan Kara @ 2013-04-04 12:33 UTC (permalink / raw)
  To: Stephen Rothwell; +Cc: Andrew Morton, linux-next, linux-kernel, Jan Kara

On Thu 04-04-13 17:12:11, Stephen Rothwell wrote:
> Hi Andrew,
> 
> Today's linux-next merge of the akpm tree got conflicts in mm/filemap.c,
> fs/xfs/xfs_file.c, fs/splice.c, fs/ocfs2/file.c, fs/ntfs/file.c,
> fs/fuse/file.c, fs/cifs/file.c and fs/btrfs/file.c between commit
> 36bd5dc0c4e2 ("lift sb_start_write/sb_end_write out of ->aio_write()")
> from the vfs tree and commit "fs: return EAGAIN when O_NONBLOCK write
> should block on frozen fs" from the akpm tree.
> 
> The former was removing the code modified by the letter, so I just
> dropped the akpm tree patch and the following "ocfs2: add freeze
> protection to ocfs2_file_splice_write()".
  Yeah, Al has been changing the area significantly. Andrew, you can drop
the three relevant patches from -mm since they'll have to be redone. ocfs2
should be actually fixed by Al's changes, psacct freeze remains but fixing
it will become trivial...

								Honza
-- 
Jan Kara <jack@suse.cz>
SUSE Labs, CR

^ permalink raw reply	[flat|nested] 29+ messages in thread

* linux-next: manual merge of the akpm tree with the vfs tree
@ 2013-04-04  6:17 Stephen Rothwell
  0 siblings, 0 replies; 29+ messages in thread
From: Stephen Rothwell @ 2013-04-04  6:17 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-next, linux-kernel, Al Viro, Oleg Nesterov

[-- Attachment #1: Type: text/plain, Size: 972 bytes --]

Hi Andrew,

Today's linux-next merge of the akpm tree got a conflict in fs/coredump.c
between commit d9fe6ea81efe ("lift sb_start_write() out of ->write()")
from the vfs tree and commit "coredump: sanitize the setting of
signal->group_exit_code" from the akpm tree.

I fixed it up (see below) and can carry the fix as necessary (no action
is required).

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc fs/coredump.c
index 69d5141,4201338..0000000
--- a/fs/coredump.c
+++ b/fs/coredump.c
@@@ -636,11 -641,8 +639,10 @@@ void do_coredump(siginfo_t *siginfo
  		goto close_fail;
  	if (displaced)
  		put_files_struct(displaced);
+ 
 +	file_start_write(cprm.file);
- 	retval = binfmt->core_dump(&cprm);
- 	if (retval)
- 		current->signal->group_exit_code |= 0x80;
+ 	core_dumped = binfmt->core_dump(&cprm);
 +	file_end_write(cprm.file);
  
  	if (ispipe && core_pipe_limit)
  		wait_for_dump_helpers(cprm.file);

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* linux-next: manual merge of the akpm tree with the vfs tree
@ 2013-04-04  6:12 Stephen Rothwell
  2013-04-04 12:33 ` Jan Kara
  0 siblings, 1 reply; 29+ messages in thread
From: Stephen Rothwell @ 2013-04-04  6:12 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-next, linux-kernel, Jan Kara

[-- Attachment #1: Type: text/plain, Size: 665 bytes --]

Hi Andrew,

Today's linux-next merge of the akpm tree got conflicts in mm/filemap.c,
fs/xfs/xfs_file.c, fs/splice.c, fs/ocfs2/file.c, fs/ntfs/file.c,
fs/fuse/file.c, fs/cifs/file.c and fs/btrfs/file.c between commit
36bd5dc0c4e2 ("lift sb_start_write/sb_end_write out of ->aio_write()")
from the vfs tree and commit "fs: return EAGAIN when O_NONBLOCK write
should block on frozen fs" from the akpm tree.

The former was removing the code modified by the letter, so I just
dropped the akpm tree patch and the following "ocfs2: add freeze
protection to ocfs2_file_splice_write()".

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* linux-next: manual merge of the akpm tree with the vfs tree
@ 2013-04-04  6:04 Stephen Rothwell
  0 siblings, 0 replies; 29+ messages in thread
From: Stephen Rothwell @ 2013-04-04  6:04 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-next, linux-kernel, Al Viro, Nathan Zimmer

[-- Attachment #1: Type: text/plain, Size: 528 bytes --]

Hi Andrew,

Today's linux-next merge of the akpm tree got a conflict in
sound/core/info.c between commit d1ffe1db6641 ("snd_info_register: switch
to proc_create_data/proc_mkdir_mode") from the vfs tree and commit
"sound: convert snd_info_register() to use proc_create_data()" from the
akpm tree.

It looks like they are trying to do the same thing, so I dropped the akpm
tree version and can carry the fix as necessary (no action is required).

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* linux-next: manual merge of the akpm tree with the vfs tree
@ 2013-02-25  3:40 Stephen Rothwell
  0 siblings, 0 replies; 29+ messages in thread
From: Stephen Rothwell @ 2013-02-25  3:40 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-next, linux-kernel, Sasha Levin, Al Viro

[-- Attachment #1: Type: text/plain, Size: 942 bytes --]

Hi Andrew,

Today's linux-next merge of the akpm tree got a conflict in
fs/sysfs/bin.c between commit 496ad9aa8ef4 ("new helper: file_inode
(file)") from the vfs tree and commit "hlist: drop the node parameter
from iterators" from the akpm tree.

I fixed it up (see below) and can carry the fix as necessary (no action
is required).

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc fs/sysfs/bin.c
index 2ce9a5d,f186e27..0000000
--- a/fs/sysfs/bin.c
+++ b/fs/sysfs/bin.c
@@@ -468,8 -467,8 +467,8 @@@ void unmap_bin_file(struct sysfs_diren
  
  	mutex_lock(&sysfs_bin_lock);
  
- 	hlist_for_each_entry(bb, tmp, &attr_sd->s_bin_attr.buffers, list) {
+ 	hlist_for_each_entry(bb, &attr_sd->s_bin_attr.buffers, list) {
 -		struct inode *inode = bb->file->f_path.dentry->d_inode;
 +		struct inode *inode = file_inode(bb->file);
  
  		unmap_mapping_range(inode->i_mapping, 0, 0, 1);
  	}

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* linux-next: manual merge of the akpm tree with the vfs tree
@ 2012-09-24 13:40 Stephen Rothwell
  0 siblings, 0 replies; 29+ messages in thread
From: Stephen Rothwell @ 2012-09-24 13:40 UTC (permalink / raw)
  To: Andrew Morton
  Cc: linux-next, linux-kernel, Cyrill Gorcunov, Al Viro, Oleg Nesterov

[-- Attachment #1: Type: text/plain, Size: 835 bytes --]

Hi Andrew,

Today's linux-next merge of the akpm tree got a conflict in
fs/proc/base.c between commit c8506285ded8 ("procfs: Move /proc/pid/fd
[info] handling code to fd.[ch]") from the vfs tree and commit "coredump:
use SUID_DUMPABLE_ENABLED rather than hardcoded 1" from the akpm tree.

I fixed it up (see below) and can carry the fix as necessary (no action
is required).

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --git a/fs/proc/internal.h b/fs/proc/internal.h
index 67925a7..863b8c7 100644
--- a/fs/proc/internal.h
+++ b/fs/proc/internal.h
@@ -103,7 +103,7 @@ static inline int task_dumpable(struct task_struct *task)
 	if (mm)
 		dumpable = get_dumpable(mm);
 	task_unlock(task);
-	if(dumpable == 1)
+	if(dumpable == SUID_DUMPABLE_ENABLED)
 		return 1;
 	return 0;
 }

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* linux-next: manual merge of the akpm tree with the vfs tree
@ 2012-09-24 13:12 Stephen Rothwell
  0 siblings, 0 replies; 29+ messages in thread
From: Stephen Rothwell @ 2012-09-24 13:12 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-next, linux-kernel, Al Viro, Konstantin Khlebnikov

[-- Attachment #1: Type: text/plain, Size: 1041 bytes --]

Hi Andrew,

Today's linux-next merge of the akpm tree got a conflict in
arch/ia64/kernel/perfmon.c between commit f9bd4f3ed24d ("make get_file()
return its argument") from the vfs tree and commit "mm: kill vma flag
VM_RESERVED and mm->reserved_vm counter" from the akpm tree.

I fixed it up (see below) and can carry the fix as necessary (no action
is required).

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc arch/ia64/kernel/perfmon.c
index f388b4e,2eae90e..0000000
--- a/arch/ia64/kernel/perfmon.c
+++ b/arch/ia64/kernel/perfmon.c
@@@ -2306,8 -2306,8 +2306,8 @@@ pfm_smpl_buffer_alloc(struct task_struc
  	 * partially initialize the vma for the sampling buffer
  	 */
  	vma->vm_mm	     = mm;
 -	vma->vm_file	     = filp;
 +	vma->vm_file	     = get_file(filp);
- 	vma->vm_flags	     = VM_READ| VM_MAYREAD |VM_RESERVED;
+ 	vma->vm_flags	     = VM_READ | VM_MAYREAD | VM_DONTEXPAND | VM_DONTDUMP;
  	vma->vm_page_prot    = PAGE_READONLY; /* XXX may need to change */
  
  	/*

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* linux-next: manual merge of the akpm tree with the vfs tree
@ 2012-09-24 13:06 Stephen Rothwell
  0 siblings, 0 replies; 29+ messages in thread
From: Stephen Rothwell @ 2012-09-24 13:06 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-next, linux-kernel, Al Viro

[-- Attachment #1: Type: text/plain, Size: 975 bytes --]

Hi Andrew,

Today's linux-next merge of the akpm tree got a conflict in mm/nommu.c
between commit f9bd4f3ed24d ("make get_file() return its argument") from
the vfs tree and commit "mm: kill vma flag VM_EXECUTABLE and
mm->num_exe_file_vmas" from the akpm tree.

I fixed it up (see below) and can carry the fix as necessary (no action
is required).

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc mm/nommu.c
index 98318dc,5583325..0000000
--- a/mm/nommu.c
+++ b/mm/nommu.c
@@@ -1282,12 -1279,10 +1279,8 @@@ unsigned long do_mmap_pgoff(struct fil
  	vma->vm_pgoff = pgoff;
  
  	if (file) {
 -		region->vm_file = file;
 -		get_file(file);
 -		vma->vm_file = file;
 -		get_file(file);
 +		region->vm_file = get_file(file);
 +		vma->vm_file = get_file(file);
- 		if (vm_flags & VM_EXECUTABLE) {
- 			added_exe_file_vma(current->mm);
- 			vma->vm_mm = current->mm;
- 		}
  	}
  
  	down_write(&nommu_region_sem);

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* linux-next: manual merge of the akpm tree with the vfs tree
@ 2012-07-22  5:44 Stephen Rothwell
  0 siblings, 0 replies; 29+ messages in thread
From: Stephen Rothwell @ 2012-07-22  5:44 UTC (permalink / raw)
  To: Andrew Morton
  Cc: linux-next, linux-kernel, Justin Lecher, Suresh Jayaraman, Al Viro

[-- Attachment #1: Type: text/plain, Size: 1204 bytes --]

Hi Andrew,

Today's linux-next merge of the akpm tree got a conflict in
fs/cachefiles/rdwr.c between commit e89cdeffe531 ("switch dentry_open()
to struct path, make it grab references itself") from the vfs,  tree and
commit "fs: cachefiles: add support for large files in filesystem
caching" from the akpm tree.

I fixed it up (and rolled in the following build fix - see below) and can
carry the fix as necessary.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc fs/cachefiles/rdwr.c
index c0353df,d136686..0000000
--- a/fs/cachefiles/rdwr.c
+++ b/fs/cachefiles/rdwr.c
@@@ -917,9 -916,10 +917,9 @@@ int cachefiles_write_page(struct fscach
  
  	/* write the page to the backing filesystem and let it store it in its
  	 * own time */
 -	dget(object->backer);
 -	mntget(cache->mnt);
 -	file = dentry_open(object->backer, cache->mnt, O_RDWR,
 -			   (O_RDWR | O_LARGEFILE), cache->cache_cred);
 +	path.mnt = cache->mnt;
 +	path.dentry = object->backer;
- 	file = dentry_open(&path, O_RDWR, cache->cache_cred);
++	file = dentry_open(&path, O_RDWR | O_LARGEFILE, cache->cache_cred);
  	if (IS_ERR(file)) {
  		ret = PTR_ERR(file);
  	} else {

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* linux-next: manual merge of the akpm tree with the vfs tree
@ 2011-07-18  8:55 Stephen Rothwell
  0 siblings, 0 replies; 29+ messages in thread
From: Stephen Rothwell @ 2011-07-18  8:55 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-next, linux-kernel, Christoph Hellwig, Al Viro

Hi Andrew,

Today's linux-next merge of the scsi-post-merge tree got a conflict in
mm/truncate.c between commit ba96a361e21b ("fs: kill i_alloc_sem") from
the vfs tree and commit "Use consistent variable names in
truncate_pagecache(), truncate_setsize()" from the akpm tree.

I fixed it up (see below) and can carry the fix as necessary.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc mm/truncate.c
index 003c6c6,a87d838..0000000
--- a/mm/truncate.c
+++ b/mm/truncate.c
@@@ -622,11 -625,12 +625,11 @@@ int vmtruncate_range(struct inode *inod
  		return -ENOSYS;
  
  	mutex_lock(&inode->i_mutex);
 -	down_write(&inode->i_alloc_sem);
 +	inode_dio_wait(inode);
- 	unmap_mapping_range(mapping, offset, (end - offset), 1);
- 	inode->i_op->truncate_range(inode, offset, end);
+ 	unmap_mapping_range(mapping, holebegin, holelen, 1);
+ 	inode->i_op->truncate_range(inode, lstart, lend);
  	/* unmap again to remove racily COWed private pages */
- 	unmap_mapping_range(mapping, offset, (end - offset), 1);
+ 	unmap_mapping_range(mapping, holebegin, holelen, 1);
 -	up_write(&inode->i_alloc_sem);
  	mutex_unlock(&inode->i_mutex);
  
  	return 0;

^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2020-05-15 11:33 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-04-04  6:26 linux-next: manual merge of the akpm tree with the vfs tree Stephen Rothwell
2013-04-04  6:56 ` Andrew Morton
2013-04-04  7:02   ` Andrew Morton
2013-04-04  8:10     ` Al Viro
2013-04-04 23:18       ` Stephen Rothwell
2013-04-04  8:02   ` Al Viro
2013-04-04 15:43     ` Nathan Zimmer
  -- strict thread matches above, loose matches on Subject: below --
2020-05-15 11:33 Stephen Rothwell
2019-04-11  6:21 Stephen Rothwell
2018-05-17  6:36 Stephen Rothwell
2018-01-02  6:46 Stephen Rothwell
2016-12-12  5:52 Stephen Rothwell
2016-12-12  8:14 ` Ian Kent
2014-08-08  6:20 Stephen Rothwell
2013-09-10  4:41 Stephen Rothwell
2013-09-05  8:56 Stephen Rothwell
2013-04-30  5:54 Stephen Rothwell
2013-04-29  8:34 Stephen Rothwell
2013-04-29  8:25 Stephen Rothwell
2013-04-04  6:17 Stephen Rothwell
2013-04-04  6:12 Stephen Rothwell
2013-04-04 12:33 ` Jan Kara
2013-04-04  6:04 Stephen Rothwell
2013-02-25  3:40 Stephen Rothwell
2012-09-24 13:40 Stephen Rothwell
2012-09-24 13:12 Stephen Rothwell
2012-09-24 13:06 Stephen Rothwell
2012-07-22  5:44 Stephen Rothwell
2011-07-18  8:55 Stephen Rothwell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).