Skip to content

Commit

Permalink
smbfs: add bdi backing to mount session
Browse files Browse the repository at this point in the history
This ensures that dirty data gets flushed properly.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
  • Loading branch information
Jens Axboe committed Apr 22, 2010
1 parent f1970c7 commit 424264b
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 0 deletions.
8 changes: 8 additions & 0 deletions fs/smbfs/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -525,6 +526,11 @@ static int smb_fill_super(struct super_block *sb, void *raw_data, int silent)
if (!server)
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;
Expand Down Expand Up @@ -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;
Expand Down
3 changes: 3 additions & 0 deletions include/linux/smb_fs_sb.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#define _SMB_FS_SB

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

/*
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit 424264b

Please sign in to comment.