summaryrefslogtreecommitdiff
path: root/cpukit/libfs/src/rfs/rtems-rfs-block.c
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2010-10-11 04:34:48 +0000
committerChris Johns <chrisj@rtems.org>2010-10-11 04:34:48 +0000
commit0a127c5591ec0b3e3c58e84702328e15809605e2 (patch)
tree0715fe1a84cbd8561d0ee2d1dadbe10dc20cdf14 /cpukit/libfs/src/rfs/rtems-rfs-block.c
parent0781705f8cfb3e5ff644c7d00bbb0b48ec8a1781 (diff)
2010-10-11 Chris Johns <chrisj@rtems.org>
* libfs/src/rfs/rtems-rfs-trace.c, libfs/src/rfs/rtems-rfs-trace.h: Add inode-delete. * libfs/src/rfs/rtems-rfs-shell.c: Fix formatting. * libfs/src/rfs/rtems-rfs-rtems-dir.c: Use ssize_t. Fix spelling. * libfs/src/rfs/rtems-rfs-block.c: Fix rtems_rfs_block_get_bpos to return the position correctly. A bpos does not have any special processing. Do no reset the buffer handle when shrinking indirectly. * libfs/src/rfs/rtems-rfs-inode.c: Add trace. * libfs/src/rfs/rtems-rfs-format.c: Fix comments. * libfs/src/rfs/rtems-rfs-group.c: Limit the inodes to the blocks in a group so the accounting works. * libfs/src/rfs/rtems-rfs-dir.c: PR 1705. Fix handling the offsets when deleting an entry. * libfs/src/rfs/rtems-rfs-buffer.h: Remove rtems_rfs_buffer_handle_reset. It is not needed and dangerous.
Diffstat (limited to 'cpukit/libfs/src/rfs/rtems-rfs-block.c')
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-block.c28
1 files changed, 9 insertions, 19 deletions
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-block.c b/cpukit/libfs/src/rfs/rtems-rfs-block.c
index 5ffadcc284..776c7f314d 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-block.c
+++ b/cpukit/libfs/src/rfs/rtems-rfs-block.c
@@ -46,33 +46,25 @@
#include <rtems/rfs/rtems-rfs-inode.h>
void
-rtems_rfs_block_get_bpos (rtems_rfs_file_system* fs,
- rtems_rfs_pos pos,
- rtems_rfs_block_pos* bpos)
+rtems_rfs_block_get_bpos (rtems_rfs_file_system* fs,
+ rtems_rfs_pos pos,
+ rtems_rfs_block_pos* bpos)
{
bpos->bno = pos / rtems_rfs_fs_block_size (fs);
bpos->boff = pos % rtems_rfs_fs_block_size (fs);
}
rtems_rfs_pos
-rtems_rfs_block_get_pos (rtems_rfs_file_system* fs,
- rtems_rfs_block_pos* bpos)
+rtems_rfs_block_get_pos (rtems_rfs_file_system* fs,
+ rtems_rfs_block_pos* bpos)
{
- rtems_rfs_pos pos = 0;
- if (bpos->bno)
- {
- pos = bpos->boff;
- if (pos == 0)
- pos = rtems_rfs_fs_block_size (fs);
- pos += (bpos->bno - 1) * rtems_rfs_fs_block_size (fs);
- }
- return pos;
+ return (bpos->bno * rtems_rfs_fs_block_size (fs)) + bpos->boff;
}
void
-rtems_rfs_block_get_block_size (rtems_rfs_file_system* fs,
- rtems_rfs_pos pos,
- rtems_rfs_block_size* size)
+rtems_rfs_block_get_block_size (rtems_rfs_file_system* fs,
+ rtems_rfs_pos pos,
+ rtems_rfs_block_size* size)
{
if (pos == 0)
rtems_rfs_block_set_size_zero (size);
@@ -634,8 +626,6 @@ rtems_rfs_block_map_indirect_shrink (rtems_rfs_file_system* fs,
int b;
for (b = 0; b < RTEMS_RFS_INODE_BLOCKS; b++)
map->blocks[b] = rtems_rfs_block_get_number (buffer, b);
-
- rtems_rfs_buffer_handle_reset (buffer);
}
else
{