Merge tag 'afs-next-20190628' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs
Pull afs updates from David Howells: "A set of minor changes for AFS: - Remove an unnecessary check in afs_unlink() - Add a tracepoint for tracking callback management - Add a tracepoint for afs_server object usage - Use struct_size() - Add mappings for AFS UAE abort codes to Linux error codes, using symbolic names rather than hex numbers in the .c file" * tag 'afs-next-20190628' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs: afs: Add support for the UAE error table fs/afs: use struct_size() in kzalloc() afs: Trace afs_server usage afs: Add some callback management tracepoints afs: afs_unlink() doesn't need to check dentry->d_inode
This commit is contained in:
@@ -514,6 +514,7 @@ struct afs_server {
|
||||
atomic_t usage;
|
||||
u32 addr_version; /* Address list version */
|
||||
u32 cm_epoch; /* Server RxRPC epoch */
|
||||
unsigned int debug_id; /* Debugging ID for traces */
|
||||
|
||||
/* file service access */
|
||||
rwlock_t fs_lock; /* access lock */
|
||||
@@ -844,9 +845,9 @@ extern struct fscache_cookie_def afs_vnode_cache_index_def;
|
||||
* callback.c
|
||||
*/
|
||||
extern void afs_init_callback_state(struct afs_server *);
|
||||
extern void __afs_break_callback(struct afs_vnode *);
|
||||
extern void afs_break_callback(struct afs_vnode *);
|
||||
extern void afs_break_callbacks(struct afs_server *, size_t, struct afs_callback_break*);
|
||||
extern void __afs_break_callback(struct afs_vnode *, enum afs_cb_break_reason);
|
||||
extern void afs_break_callback(struct afs_vnode *, enum afs_cb_break_reason);
|
||||
extern void afs_break_callbacks(struct afs_server *, size_t, struct afs_callback_break *);
|
||||
|
||||
extern int afs_register_server_cb_interest(struct afs_vnode *,
|
||||
struct afs_server_list *, unsigned int);
|
||||
@@ -1240,17 +1241,12 @@ extern void __exit afs_clean_up_permit_cache(void);
|
||||
*/
|
||||
extern spinlock_t afs_server_peer_lock;
|
||||
|
||||
static inline struct afs_server *afs_get_server(struct afs_server *server)
|
||||
{
|
||||
atomic_inc(&server->usage);
|
||||
return server;
|
||||
}
|
||||
|
||||
extern struct afs_server *afs_find_server(struct afs_net *,
|
||||
const struct sockaddr_rxrpc *);
|
||||
extern struct afs_server *afs_find_server_by_uuid(struct afs_net *, const uuid_t *);
|
||||
extern struct afs_server *afs_lookup_server(struct afs_cell *, struct key *, const uuid_t *);
|
||||
extern void afs_put_server(struct afs_net *, struct afs_server *);
|
||||
extern struct afs_server *afs_get_server(struct afs_server *, enum afs_server_trace);
|
||||
extern void afs_put_server(struct afs_net *, struct afs_server *, enum afs_server_trace);
|
||||
extern void afs_manage_servers(struct work_struct *);
|
||||
extern void afs_servers_timer(struct timer_list *);
|
||||
extern void __net_exit afs_purge_servers(struct afs_net *);
|
||||
@@ -1434,7 +1430,7 @@ static inline void afs_check_for_remote_deletion(struct afs_fs_cursor *fc,
|
||||
{
|
||||
if (fc->ac.error == -ENOENT) {
|
||||
set_bit(AFS_VNODE_DELETED, &vnode->flags);
|
||||
afs_break_callback(vnode);
|
||||
afs_break_callback(vnode, afs_cb_break_for_deleted);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user