Commit 424264b7b220e8eee165dc3080ae48692af73dec
1 parent
f1970c73cb
Exists in
master
and in
7 other branches
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
fs/smbfs/inode.c
... | ... | @@ -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 |