int *created, int create,
struct semaphore *optional_sem)
{
- int rc;
+ int rc = 0;
+ if (optional_sem != NULL)
+ down(optional_sem);
#ifdef EXT3_MULTIBLOCK_ALLOCATOR
- if (EXT3_I(inode)->i_flags & EXT3_EXTENTS_FL) {
+ if (EXT3_I(inode)->i_flags & EXT3_EXTENTS_FL)
rc = fsfilt_ext3_map_ext_inode_pages(inode, page, pages,
blocks, created, create);
- return rc;
- }
+ else
#endif
- if (optional_sem != NULL)
- down(optional_sem);
- rc = fsfilt_ext3_map_bm_inode_pages(inode, page, pages, blocks,
- created, create);
+ rc = fsfilt_ext3_map_bm_inode_pages(inode, page, pages, blocks,
+ created, create);
if (optional_sem != NULL)
up(optional_sem);