Merge branch 'getname2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull getname/putname updates from Al Viro: "Rework of getname/getname_kernel/etc., mostly from Paul Moore. Gets rid of quite a pile of kludges between namei and audit..." * 'getname2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: audit: replace getname()/putname() hacks with reference counters audit: fix filename matching in __audit_inode() and __audit_inode_child() audit: enable filename recording via getname_kernel() simpler calling conventions for filename_mountpoint() fs: create proper filename objects using getname_kernel() fs: rework getname_kernel to handle up to PATH_MAX sized filenames cut down the number of do_path_lookup() callers
This commit is contained in:
@@ -2141,6 +2141,7 @@ struct filename {
|
||||
const char *name; /* pointer to actual string */
|
||||
const __user char *uptr; /* original userland pointer */
|
||||
struct audit_names *aname;
|
||||
int refcnt;
|
||||
bool separate; /* should "name" be freed? */
|
||||
};
|
||||
|
||||
@@ -2162,6 +2163,7 @@ extern int filp_close(struct file *, fl_owner_t id);
|
||||
extern struct filename *getname_flags(const char __user *, int, int *);
|
||||
extern struct filename *getname(const char __user *);
|
||||
extern struct filename *getname_kernel(const char *);
|
||||
extern void putname(struct filename *name);
|
||||
|
||||
enum {
|
||||
FILE_CREATED = 1,
|
||||
@@ -2182,15 +2184,8 @@ extern void __init vfs_caches_init(unsigned long);
|
||||
|
||||
extern struct kmem_cache *names_cachep;
|
||||
|
||||
extern void final_putname(struct filename *name);
|
||||
|
||||
#define __getname() kmem_cache_alloc(names_cachep, GFP_KERNEL)
|
||||
#define __putname(name) kmem_cache_free(names_cachep, (void *)(name))
|
||||
#ifndef CONFIG_AUDITSYSCALL
|
||||
#define putname(name) final_putname(name)
|
||||
#else
|
||||
extern void putname(struct filename *name);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BLOCK
|
||||
extern int register_blkdev(unsigned int, const char *);
|
||||
|
Reference in New Issue
Block a user