ncpfs: Convert to separately allocated bdi
Allocate struct backing_dev_info separately instead of embedding it inside the superblock. This unifies handling of bdi among users. CC: Petr Vandrovec <petr@vandrovec.name> Acked-by: Petr Vandrovec <petr@vandrovec.name> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
parent
0546c537b1
commit
a0349ec00f
|
@ -554,12 +554,11 @@ static int ncp_fill_super(struct super_block *sb, void *raw_data, int silent)
|
||||||
sb->s_magic = NCP_SUPER_MAGIC;
|
sb->s_magic = NCP_SUPER_MAGIC;
|
||||||
sb->s_op = &ncp_sops;
|
sb->s_op = &ncp_sops;
|
||||||
sb->s_d_op = &ncp_dentry_operations;
|
sb->s_d_op = &ncp_dentry_operations;
|
||||||
sb->s_bdi = &server->bdi;
|
|
||||||
|
|
||||||
server = NCP_SBP(sb);
|
server = NCP_SBP(sb);
|
||||||
memset(server, 0, sizeof(*server));
|
memset(server, 0, sizeof(*server));
|
||||||
|
|
||||||
error = bdi_setup_and_register(&server->bdi, "ncpfs");
|
error = super_setup_bdi(sb);
|
||||||
if (error)
|
if (error)
|
||||||
goto out_fput;
|
goto out_fput;
|
||||||
|
|
||||||
|
@ -568,7 +567,7 @@ static int ncp_fill_super(struct super_block *sb, void *raw_data, int silent)
|
||||||
if (data.info_fd != -1) {
|
if (data.info_fd != -1) {
|
||||||
struct socket *info_sock = sockfd_lookup(data.info_fd, &error);
|
struct socket *info_sock = sockfd_lookup(data.info_fd, &error);
|
||||||
if (!info_sock)
|
if (!info_sock)
|
||||||
goto out_bdi;
|
goto out_fput;
|
||||||
server->info_sock = info_sock;
|
server->info_sock = info_sock;
|
||||||
error = -EBADFD;
|
error = -EBADFD;
|
||||||
if (info_sock->type != SOCK_STREAM)
|
if (info_sock->type != SOCK_STREAM)
|
||||||
|
@ -746,8 +745,6 @@ out_nls:
|
||||||
out_fput2:
|
out_fput2:
|
||||||
if (server->info_sock)
|
if (server->info_sock)
|
||||||
sockfd_put(server->info_sock);
|
sockfd_put(server->info_sock);
|
||||||
out_bdi:
|
|
||||||
bdi_destroy(&server->bdi);
|
|
||||||
out_fput:
|
out_fput:
|
||||||
sockfd_put(sock);
|
sockfd_put(sock);
|
||||||
out:
|
out:
|
||||||
|
@ -788,7 +785,6 @@ static void ncp_put_super(struct super_block *sb)
|
||||||
kill_pid(server->m.wdog_pid, SIGTERM, 1);
|
kill_pid(server->m.wdog_pid, SIGTERM, 1);
|
||||||
put_pid(server->m.wdog_pid);
|
put_pid(server->m.wdog_pid);
|
||||||
|
|
||||||
bdi_destroy(&server->bdi);
|
|
||||||
kfree(server->priv.data);
|
kfree(server->priv.data);
|
||||||
kfree(server->auth.object_name);
|
kfree(server->auth.object_name);
|
||||||
vfree(server->rxbuf);
|
vfree(server->rxbuf);
|
||||||
|
|
|
@ -143,7 +143,6 @@ struct ncp_server {
|
||||||
size_t len;
|
size_t len;
|
||||||
__u8 data[128];
|
__u8 data[128];
|
||||||
} unexpected_packet;
|
} unexpected_packet;
|
||||||
struct backing_dev_info bdi;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
extern void ncp_tcp_rcv_proc(struct work_struct *work);
|
extern void ncp_tcp_rcv_proc(struct work_struct *work);
|
||||||
|
|
Loading…
Reference in New Issue