[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <0227447F-5665-4B5C-A71D-8DAB5452360A@tuxera.com>
Date: Sat, 11 Apr 2015 02:29:39 +0000
From: Anton Altaparmakov <anton@...era.com>
To: Al Viro <viro@...iv.linux.org.uk>
CC: Linus Torvalds <torvalds@...ux-foundation.org>,
Andrew Morton <akpm@...ux-foundation.org>,
"Eric W. Biederman" <ebiederm@...ssion.com>,
linux-fsdevel <linux-fsdevel@...r.kernel.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: i_uid_read()/i_uid_write() and friends
Hi,
Is it intended that non-gpl file systems cannot use functions like i_uid_read() and i_uid_write() (introduced by Eric Biederman in 3.5 kernel)?
They resolve to the below (in include/linux/fs.h):
static inline uid_t i_uid_read(const struct inode *inode)
{
return from_kuid(&init_user_ns, inode->i_uid);
}
static inline void i_uid_write(struct inode *inode, uid_t uid)
{
inode->i_uid = make_kuid(&init_user_ns, uid);
}
And both from_kuid() and make_kuid() are EXPORT_SYMBOL() so they are fine but the problem is that init_user_ns is EXPORT_SYMBOL_GPL() and because i_uid_read() and i_uid_write() are static inline it causes them to be unusable from non-gpl kernel modules...
Same thing applies to i_gid_read() and i_gid_write().
These seem pretty fundamental calls that a non-gpl file system should be able to call, no?
Best regards,
Anton
--
Anton Altaparmakov <anton at tuxera.com> (replace at with @)
Lead in File System Development, Tuxera Inc., http://www.tuxera.com/
Linux NTFS maintainer
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists