diff options
author | Robert Richter <robert.richter@amd.com> | 2009-06-10 21:47:10 +0200 |
---|---|---|
committer | Robert Richter <robert.richter@amd.com> | 2009-06-10 21:47:10 +0200 |
commit | 0886751c5d8b19fcee2e65d34ae21c9111e652a9 (patch) | |
tree | 015e8c2b3d44d46e9e8fccd016340c51bc876d3b /fs/nilfs2/mdt.c | |
parent | 7e4e0bd50e80df2fe5501f48f872448376cdd997 (diff) | |
parent | 07a2039b8eb0af4ff464efd3dfd95de5c02648c6 (diff) | |
download | kernel_samsung_aries-0886751c5d8b19fcee2e65d34ae21c9111e652a9.zip kernel_samsung_aries-0886751c5d8b19fcee2e65d34ae21c9111e652a9.tar.gz kernel_samsung_aries-0886751c5d8b19fcee2e65d34ae21c9111e652a9.tar.bz2 |
Merge commit 'v2.6.30' into oprofile/master
Diffstat (limited to 'fs/nilfs2/mdt.c')
-rw-r--r-- | fs/nilfs2/mdt.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/fs/nilfs2/mdt.c b/fs/nilfs2/mdt.c index 47dd815..bb78745 100644 --- a/fs/nilfs2/mdt.c +++ b/fs/nilfs2/mdt.c @@ -77,19 +77,22 @@ static int nilfs_mdt_create_block(struct inode *inode, unsigned long block, void *)) { struct the_nilfs *nilfs = NILFS_MDT(inode)->mi_nilfs; - struct nilfs_sb_info *writer = NULL; struct super_block *sb = inode->i_sb; struct nilfs_transaction_info ti; struct buffer_head *bh; int err; if (!sb) { - writer = nilfs_get_writer(nilfs); - if (!writer) { + /* + * Make sure this function is not called from any + * read-only context. + */ + if (!nilfs->ns_writer) { + WARN_ON(1); err = -EROFS; goto out; } - sb = writer->s_super; + sb = nilfs->ns_writer->s_super; } nilfs_transaction_begin(sb, &ti, 0); @@ -127,8 +130,6 @@ static int nilfs_mdt_create_block(struct inode *inode, unsigned long block, err = nilfs_transaction_commit(sb); else nilfs_transaction_abort(sb); - if (writer) - nilfs_put_writer(nilfs); out: return err; } @@ -299,7 +300,7 @@ int nilfs_mdt_delete_block(struct inode *inode, unsigned long block) int err; err = nilfs_bmap_delete(ii->i_bmap, block); - if (likely(!err)) { + if (!err || err == -ENOENT) { nilfs_mdt_mark_dirty(inode); nilfs_mdt_forget_block(inode, block); } |