diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-21 12:04:30 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-21 12:04:30 -0400 |
commit | 58e75a09732be9b850357ba3489bcfb103230b27 (patch) | |
tree | 60f1a6f9fa208fd627845a795e739c5ccf01d6bd /fs | |
parent | c720f5655df159a630fa0290a0bd67c93e92b0bf (diff) | |
parent | 48d0764998ad4ab7570afab8bb3bee0fbfa55b2a (diff) |
Merge branch 'writeback' of git://git.kernel.dk/linux-2.6-block
* 'writeback' of git://git.kernel.dk/linux-2.6-block:
nfs: initialize the backing_dev_info when creating the server
writeback: make balance_dirty_pages() gradually back more off
writeback: don't use schedule_timeout() without setting runstate
nfs: nfs_kill_super() should call bdi_unregister() after killing super
Diffstat (limited to 'fs')
-rw-r--r-- | fs/nfs/client.c | 10 | ||||
-rw-r--r-- | fs/nfs/super.c | 2 |
2 files changed, 7 insertions, 5 deletions
diff --git a/fs/nfs/client.c b/fs/nfs/client.c index e350bd6a2334..a7ce15d3c248 100644 --- a/fs/nfs/client.c +++ b/fs/nfs/client.c | |||
@@ -933,10 +933,6 @@ static int nfs_probe_fsinfo(struct nfs_server *server, struct nfs_fh *mntfh, str | |||
933 | goto out_error; | 933 | goto out_error; |
934 | 934 | ||
935 | nfs_server_set_fsinfo(server, &fsinfo); | 935 | nfs_server_set_fsinfo(server, &fsinfo); |
936 | error = bdi_init(&server->backing_dev_info); | ||
937 | if (error) | ||
938 | goto out_error; | ||
939 | |||
940 | 936 | ||
941 | /* Get some general file system info */ | 937 | /* Get some general file system info */ |
942 | if (server->namelen == 0) { | 938 | if (server->namelen == 0) { |
@@ -995,6 +991,12 @@ static struct nfs_server *nfs_alloc_server(void) | |||
995 | return NULL; | 991 | return NULL; |
996 | } | 992 | } |
997 | 993 | ||
994 | if (bdi_init(&server->backing_dev_info)) { | ||
995 | nfs_free_iostats(server->io_stats); | ||
996 | kfree(server); | ||
997 | return NULL; | ||
998 | } | ||
999 | |||
998 | return server; | 1000 | return server; |
999 | } | 1001 | } |
1000 | 1002 | ||
diff --git a/fs/nfs/super.c b/fs/nfs/super.c index de935692d40d..f1cc0587cfef 100644 --- a/fs/nfs/super.c +++ b/fs/nfs/super.c | |||
@@ -2190,8 +2190,8 @@ static void nfs_kill_super(struct super_block *s) | |||
2190 | { | 2190 | { |
2191 | struct nfs_server *server = NFS_SB(s); | 2191 | struct nfs_server *server = NFS_SB(s); |
2192 | 2192 | ||
2193 | bdi_unregister(&server->backing_dev_info); | ||
2194 | kill_anon_super(s); | 2193 | kill_anon_super(s); |
2194 | bdi_unregister(&server->backing_dev_info); | ||
2195 | nfs_fscache_release_super_cookie(s); | 2195 | nfs_fscache_release_super_cookie(s); |
2196 | nfs_free_server(server); | 2196 | nfs_free_server(server); |
2197 | } | 2197 | } |