From: Al Viro Date: Mon, 30 Jul 2012 20:53:35 +0000 (+0400) Subject: simplify lookup_open()/atomic_open() - do the temporary mnt_want_write() early X-Git-Tag: v3.6-rc1~18^2~29 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=64894cf843278c7b2653a6fac2cd1a697ff930dc;p=pandora-kernel.git simplify lookup_open()/atomic_open() - do the temporary mnt_want_write() early The write ref to vfsmount taken in lookup_open()/atomic_open() is going to be dropped; we take the one to stay in dentry_open(). Just grab the temporary in caller if it looks like we are going to need it (create/truncate/writable open) and pass (by value) "has it succeeded" flag. Instead of doing mnt_want_write() inside, check that flag and treat "false" as "mnt_want_write() has just failed". mnt_want_write() is cheap and the things get considerably simpler and more robust that way - we get it and drop it in the same function, to start with, rather than passing a "has something in the guts of really scary functions taken it" back to caller. Signed-off-by: Al Viro --- Reading git-diff-tree failed