diff options
| author | Jens Axboe <jens.axboe@oracle.com> | 2010-04-22 12:22:04 +0200 | 
|---|---|---|
| committer | Jens Axboe <jens.axboe@oracle.com> | 2010-04-22 12:22:04 +0200 | 
| commit | 9df9c8b930156a2f9ce2b2ae66acb14bee2663f5 (patch) | |
| tree | 35992d372a4587600f93c399eaa12b7c7bd77cbf /fs/ecryptfs/main.c | |
| parent | 5163d90076729413cb882d3dd5c3d3cfb5b9f035 (diff) | |
| download | olio-linux-3.10-9df9c8b930156a2f9ce2b2ae66acb14bee2663f5.tar.xz olio-linux-3.10-9df9c8b930156a2f9ce2b2ae66acb14bee2663f5.zip  | |
ecryptfs: add bdi backing to mount session
This ensures that dirty data gets flushed properly.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'fs/ecryptfs/main.c')
| -rw-r--r-- | fs/ecryptfs/main.c | 10 | 
1 files changed, 9 insertions, 1 deletions
diff --git a/fs/ecryptfs/main.c b/fs/ecryptfs/main.c index af1a8f01eba..760983d0f25 100644 --- a/fs/ecryptfs/main.c +++ b/fs/ecryptfs/main.c @@ -497,17 +497,25 @@ struct kmem_cache *ecryptfs_sb_info_cache;  static int  ecryptfs_fill_super(struct super_block *sb, void *raw_data, int silent)  { +	struct ecryptfs_sb_info *esi;  	int rc = 0;  	/* Released in ecryptfs_put_super() */  	ecryptfs_set_superblock_private(sb,  					kmem_cache_zalloc(ecryptfs_sb_info_cache,  							 GFP_KERNEL)); -	if (!ecryptfs_superblock_to_private(sb)) { +	esi = ecryptfs_superblock_to_private(sb); +	if (!esi) {  		ecryptfs_printk(KERN_WARNING, "Out of memory\n");  		rc = -ENOMEM;  		goto out;  	} + +	rc = bdi_setup_and_register(&esi->bdi, "ecryptfs", BDI_CAP_MAP_COPY); +	if (rc) +		goto out; + +	sb->s_bdi = &esi->bdi;  	sb->s_op = &ecryptfs_sops;  	/* Released through deactivate_super(sb) from get_sb_nodev */  	sb->s_root = d_alloc(NULL, &(const struct qstr) {  |