On 07/13/2017 11:58 AM, Matthew Wilcox wrote:
On Thu, Jul 13, 2017 at 11:24:01AM -0700, Jay Lan wrote:
On 07/13/2017 12:15 AM, Christoph Hellwig wrote:
On Wed, Jul 12, 2017 at 02:40:11PM -0700, Jay Lan wrote:
Hi all,
I was writing a livepatch patch, but compilation failed in creating the .ko
because mount_lock is "undefined."
The mount_lock is defined globally in fs/namespace.c
__cacheline_aligned_in_smp DEFINE_SEQLOCK(mount_lock);
and extern in fs/mount.h.
extern seqlock_t mount_lock;
If there is a reason that mount_lock should not be EXPORT_SYMBOL_GPL, please
advise; otherwise, I propose the patch to export this symbol.
Because there is no %$^$^ reason to use it from a module ever?
Is livepatch a good reason? Besides security fixes, livepatch is a good tool
to use for debugging and providing a temporary fix on production systems
(until next release from vendors) I know this argument is not strong, but at
least mount_lock is declared globally. Yes?
Something I've done in the past as a local hack when a symbol I wanted
wasn't exported is:
extern seqlock_t *mount_lock_p;
module_param(mount_lock_p, charp, 0);
and then pass the address (from /proc/kallsyms) as a module parameter
at load time.
Thanks for the tip, Matthew!
Please considered the patch request withdrawn.
Jay