diff options
Diffstat (limited to 'fs/qnx4/bitmap.c')
-rw-r--r-- | fs/qnx4/bitmap.c | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/fs/qnx4/bitmap.c b/fs/qnx4/bitmap.c index e1cd061a25f7..0afba069d567 100644 --- a/fs/qnx4/bitmap.c +++ b/fs/qnx4/bitmap.c | |||
@@ -78,84 +78,3 @@ unsigned long qnx4_count_free_blocks(struct super_block *sb) | |||
78 | 78 | ||
79 | return total_free; | 79 | return total_free; |
80 | } | 80 | } |
81 | |||
82 | #ifdef CONFIG_QNX4FS_RW | ||
83 | |||
84 | int qnx4_is_free(struct super_block *sb, long block) | ||
85 | { | ||
86 | int start = le32_to_cpu(qnx4_sb(sb)->BitMap->di_first_xtnt.xtnt_blk) - 1; | ||
87 | int size = le32_to_cpu(qnx4_sb(sb)->BitMap->di_size); | ||
88 | struct buffer_head *bh; | ||
89 | const char *g; | ||
90 | int ret = -EIO; | ||
91 | |||
92 | start += block / (QNX4_BLOCK_SIZE * 8); | ||
93 | QNX4DEBUG(("qnx4: is_free requesting block [%lu], bitmap in block [%lu]\n", | ||
94 | (unsigned long) block, (unsigned long) start)); | ||
95 | (void) size; /* CHECKME */ | ||
96 | bh = sb_bread(sb, start); | ||
97 | if (bh == NULL) { | ||
98 | return -EIO; | ||
99 | } | ||
100 | g = bh->b_data + (block % QNX4_BLOCK_SIZE); | ||
101 | if (((*g) & (1 << (block % 8))) == 0) { | ||
102 | QNX4DEBUG(("qnx4: is_free -> block is free\n")); | ||
103 | ret = 1; | ||
104 | } else { | ||
105 | QNX4DEBUG(("qnx4: is_free -> block is busy\n")); | ||
106 | ret = 0; | ||
107 | } | ||
108 | brelse(bh); | ||
109 | |||
110 | return ret; | ||
111 | } | ||
112 | |||
113 | int qnx4_set_bitmap(struct super_block *sb, long block, int busy) | ||
114 | { | ||
115 | int start = le32_to_cpu(qnx4_sb(sb)->BitMap->di_first_xtnt.xtnt_blk) - 1; | ||
116 | int size = le32_to_cpu(qnx4_sb(sb)->BitMap->di_size); | ||
117 | struct buffer_head *bh; | ||
118 | char *g; | ||
119 | |||
120 | start += block / (QNX4_BLOCK_SIZE * 8); | ||
121 | QNX4DEBUG(("qnx4: set_bitmap requesting block [%lu], bitmap in block [%lu]\n", | ||
122 | (unsigned long) block, (unsigned long) start)); | ||
123 | (void) size; /* CHECKME */ | ||
124 | bh = sb_bread(sb, start); | ||
125 | if (bh == NULL) { | ||
126 | return -EIO; | ||
127 | } | ||
128 | g = bh->b_data + (block % QNX4_BLOCK_SIZE); | ||
129 | if (busy == 0) { | ||
130 | (*g) &= ~(1 << (block % 8)); | ||
131 | } else { | ||
132 | (*g) |= (1 << (block % 8)); | ||
133 | } | ||
134 | mark_buffer_dirty(bh); | ||
135 | brelse(bh); | ||
136 | |||
137 | return 0; | ||
138 | } | ||
139 | |||
140 | static void qnx4_clear_inode(struct inode *inode) | ||
141 | { | ||
142 | struct qnx4_inode_entry *qnx4_ino = qnx4_raw_inode(inode); | ||
143 | /* What for? */ | ||
144 | memset(qnx4_ino->di_fname, 0, sizeof qnx4_ino->di_fname); | ||
145 | qnx4_ino->di_size = 0; | ||
146 | qnx4_ino->di_num_xtnts = 0; | ||
147 | qnx4_ino->di_mode = 0; | ||
148 | qnx4_ino->di_status = 0; | ||
149 | } | ||
150 | |||
151 | void qnx4_free_inode(struct inode *inode) | ||
152 | { | ||
153 | if (inode->i_ino < 1) { | ||
154 | printk("free_inode: inode 0 or nonexistent inode\n"); | ||
155 | return; | ||
156 | } | ||
157 | qnx4_clear_inode(inode); | ||
158 | clear_inode(inode); | ||
159 | } | ||
160 | |||
161 | #endif | ||