Merge branch 'afs-proc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull AFS updates from Al Viro: "Assorted AFS stuff - ended up in vfs.git since most of that consists of David's AFS-related followups to Christoph's procfs series" * 'afs-proc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: afs: Optimise callback breaking by not repeating volume lookup afs: Display manually added cells in dynamic root mount afs: Enable IPv6 DNS lookups afs: Show all of a server's addresses in /proc/fs/afs/servers afs: Handle CONFIG_PROC_FS=n proc: Make inline name size calculation automatic afs: Implement network namespacing afs: Mark afs_net::ws_cell as __rcu and set using rcu functions afs: Fix a Sparse warning in xdr_decode_AFSFetchStatus() proc: Add a way to make network proc files writable afs: Rearrange fs/afs/proc.c to remove remaining predeclarations. afs: Rearrange fs/afs/proc.c to move the show routines up afs: Rearrange fs/afs/proc.c by moving fops and open functions down afs: Move /proc management functions to the end of the file
Tento commit je obsažen v:
@@ -48,6 +48,7 @@ struct proc_dir_entry {
|
||||
const struct seq_operations *seq_ops;
|
||||
int (*single_show)(struct seq_file *, void *);
|
||||
};
|
||||
proc_write_t write;
|
||||
void *data;
|
||||
unsigned int state_size;
|
||||
unsigned int low_ino;
|
||||
@@ -61,14 +62,20 @@ struct proc_dir_entry {
|
||||
char *name;
|
||||
umode_t mode;
|
||||
u8 namelen;
|
||||
#ifdef CONFIG_64BIT
|
||||
#define SIZEOF_PDE_INLINE_NAME (192-155)
|
||||
#else
|
||||
#define SIZEOF_PDE_INLINE_NAME (128-95)
|
||||
#endif
|
||||
char inline_name[SIZEOF_PDE_INLINE_NAME];
|
||||
char inline_name[];
|
||||
} __randomize_layout;
|
||||
|
||||
#define OFFSETOF_PDE_NAME offsetof(struct proc_dir_entry, inline_name)
|
||||
#define SIZEOF_PDE_SLOT \
|
||||
(OFFSETOF_PDE_NAME + 34 <= 64 ? 64 : \
|
||||
OFFSETOF_PDE_NAME + 34 <= 128 ? 128 : \
|
||||
OFFSETOF_PDE_NAME + 34 <= 192 ? 192 : \
|
||||
OFFSETOF_PDE_NAME + 34 <= 256 ? 256 : \
|
||||
OFFSETOF_PDE_NAME + 34 <= 512 ? 512 : \
|
||||
0)
|
||||
|
||||
#define SIZEOF_PDE_INLINE_NAME (SIZEOF_PDE_SLOT - OFFSETOF_PDE_NAME)
|
||||
|
||||
extern struct kmem_cache *proc_dir_entry_cache;
|
||||
void pde_free(struct proc_dir_entry *pde);
|
||||
|
||||
@@ -189,6 +196,7 @@ static inline bool is_empty_pde(const struct proc_dir_entry *pde)
|
||||
{
|
||||
return S_ISDIR(pde->mode) && !pde->proc_iops;
|
||||
}
|
||||
extern ssize_t proc_simple_write(struct file *, const char __user *, size_t, loff_t *);
|
||||
|
||||
/*
|
||||
* inode.c
|
||||
|
Odkázat v novém úkolu
Zablokovat Uživatele