Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 424264b7 authored by Jens Axboe's avatar Jens Axboe
Browse files

smbfs: add bdi backing to mount session



This ensures that dirty data gets flushed properly.

Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
parent f1970c73
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -479,6 +479,7 @@ smb_put_super(struct super_block *sb)
	if (server->conn_pid)
		kill_pid(server->conn_pid, SIGTERM, 1);

	bdi_destroy(&server->bdi);
	kfree(server->ops);
	smb_unload_nls(server);
	sb->s_fs_info = NULL;
@@ -526,6 +527,11 @@ static int smb_fill_super(struct super_block *sb, void *raw_data, int silent)
		goto out_no_server;
	sb->s_fs_info = server;
	
	if (bdi_setup_and_register(&server->bdi, "smbfs", BDI_CAP_MAP_COPY))
		goto out_bdi;

	sb->s_bdi = &server->bdi;

	server->super_block = sb;
	server->mnt = NULL;
	server->sock_file = NULL;
@@ -624,6 +630,8 @@ static int smb_fill_super(struct super_block *sb, void *raw_data, int silent)
out_bad_option:
	kfree(mem);
out_no_mem:
	bdi_destroy(&server->bdi);
out_bdi:
	if (!server->mnt)
		printk(KERN_ERR "smb_fill_super: allocation failure\n");
	sb->s_fs_info = NULL;
+3 −0
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@
#define _SMB_FS_SB

#include <linux/types.h>
#include <linux/backing-dev.h>
#include <linux/smb.h>

/*
@@ -74,6 +75,8 @@ struct smb_sb_info {
	struct smb_ops *ops;

	struct super_block *super_block;

	struct backing_dev_info bdi;
};

static inline int