Commit 424264b7b220e8eee165dc3080ae48692af73dec

Authored by Jens Axboe
1 parent f1970c73cb

smbfs: add bdi backing to mount session

This ensures that dirty data gets flushed properly.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>

Showing 2 changed files with 11 additions and 0 deletions Side-by-side Diff

... ... @@ -479,6 +479,7 @@
479 479 if (server->conn_pid)
480 480 kill_pid(server->conn_pid, SIGTERM, 1);
481 481  
  482 + bdi_destroy(&server->bdi);
482 483 kfree(server->ops);
483 484 smb_unload_nls(server);
484 485 sb->s_fs_info = NULL;
485 486  
... ... @@ -525,7 +526,12 @@
525 526 if (!server)
526 527 goto out_no_server;
527 528 sb->s_fs_info = server;
  529 +
  530 + if (bdi_setup_and_register(&server->bdi, "smbfs", BDI_CAP_MAP_COPY))
  531 + goto out_bdi;
528 532  
  533 + sb->s_bdi = &server->bdi;
  534 +
529 535 server->super_block = sb;
530 536 server->mnt = NULL;
531 537 server->sock_file = NULL;
... ... @@ -624,6 +630,8 @@
624 630 out_bad_option:
625 631 kfree(mem);
626 632 out_no_mem:
  633 + bdi_destroy(&server->bdi);
  634 +out_bdi:
627 635 if (!server->mnt)
628 636 printk(KERN_ERR "smb_fill_super: allocation failure\n");
629 637 sb->s_fs_info = NULL;
include/linux/smb_fs_sb.h
... ... @@ -10,6 +10,7 @@
10 10 #define _SMB_FS_SB
11 11  
12 12 #include <linux/types.h>
  13 +#include <linux/backing-dev.h>
13 14 #include <linux/smb.h>
14 15  
15 16 /*
... ... @@ -74,6 +75,8 @@
74 75 struct smb_ops *ops;
75 76  
76 77 struct super_block *super_block;
  78 +
  79 + struct backing_dev_info bdi;
77 80 };
78 81  
79 82 static inline int