Lines Matching refs:inode

51 	Inode* inode = (Inode*)cookie;
53 return file_map_translate(inode->Map(), offset, size, vecs, _count,
54 inode->GetVolume()->BlockSize());
63 Inode* inode = (Inode*)cookie;
64 rw_lock_read_unlock(inode->Lock());
220 ERROR("invalid inode id %lld requested!\n", id);
224 Inode* inode = new(std::nothrow) Inode(volume, id);
225 if (inode == NULL)
228 status_t status = inode->InitCheck();
230 delete inode;
233 _node->private_node = inode;
235 *_type = inode->Mode();
257 Inode* inode = (Inode*)_node->private_node;
258 ObjectDeleter<Inode> inodeDeleter(inode);
260 if (!inode->IsDeleted())
266 if (!inode->IsSymLink() || inode->Size() >= EXT2_SHORT_SYMLINK_LENGTH) {
268 status_t status = inode->Resize(transaction, 0);
274 status_t status = volume->RemoveOrphan(transaction, inode->ID());
279 inode->Node().SetDeletionTime(real_time_clock());
281 status = inode->WriteBack(transaction);
285 TRACE("ext2_remove_vnode(): Freeing inode\n");
286 status = volume->FreeInode(transaction, inode->ID(), inode->IsDirectory());
308 Inode* inode = (Inode*)_node->private_node;
310 if (inode->FileCache() == NULL)
313 rw_lock_read_lock(inode->Lock());
324 status = file_map_translate(inode->Map(), pos, bytesLeft, fileVecs,
341 rw_lock_read_unlock(inode->Lock());
352 Inode* inode = (Inode*)_node->private_node;
357 if (inode->FileCache() == NULL)
360 rw_lock_read_lock(inode->Lock());
371 status = file_map_translate(inode->Map(), pos, bytesLeft, fileVecs,
388 rw_lock_read_unlock(inode->Lock());
398 Inode* inode = (Inode*)_node->private_node;
407 if (inode->FileCache() == NULL) {
415 rw_lock_read_lock(inode->Lock());
418 iterative_io_get_vecs_hook, iterative_io_finished_hook, inode);
428 Inode* inode = (Inode*)_node->private_node;
434 status_t status = inode->FindBlock(offset, block, &count);
470 if (size <= vecs[index - 1].length || offset >= inode->Size()) {
473 TRACE("ext2_get_file_map for inode %lld\n", inode->ID());
575 Inode* inode = (Inode*)_node->private_node;
576 return inode->Sync();
583 Inode* inode = (Inode*)_node->private_node;
584 const ext2_inode& node = inode->Node();
586 stat->st_dev = inode->GetVolume()->ID();
587 stat->st_ino = inode->ID();
596 inode->GetAccessTime(&stat->st_atim);
597 inode->GetModificationTime(&stat->st_mtim);
598 inode->GetChangeTime(&stat->st_ctim);
599 inode->GetCreationTime(&stat->st_crtim);
601 stat->st_size = inode->Size();
602 stat->st_blocks = (inode->Size() + 511) / 512;
618 Inode* inode = (Inode*)_node->private_node;
620 ext2_inode& node = inode->Node();
625 bool hasWriteAccess = inode->CheckPermissions(W_OK) == B_OK;
629 inode->WriteLockInTransaction(transaction);
631 if ((mask & B_STAT_SIZE) != 0 && inode->Size() != stat->st_size) {
632 if (inode->IsDirectory())
634 if (!inode->IsFile())
640 (long)inode->Size(), (long)stat->st_size);
642 off_t oldSize = inode->Size();
644 status_t status = inode->Resize(transaction, stat->st_size);
649 rw_lock_write_unlock(inode->Lock());
650 inode->FillGapWithZeros(oldSize, inode->Size());
651 rw_lock_write_lock(inode->Lock());
698 inode->SetModificationTime(&newTimespec);
704 inode->SetCreationTime(&stat->st_crtim);
707 status_t status = inode->WriteBack(transaction);
711 notify_stat_changed(volume->ID(), inode->ID(), mask);
748 TRACE("ext2_create(): Creating inode\n");
750 Inode* inode;
754 &inode, &gExt2VnodeOps);
758 TRACE("ext2_create(): Created inode\n");
760 if ((openMode & O_NOCACHE) != 0 && !inode->IsFileCacheDisabled()) {
761 status = inode->DisableFileCache();
904 Inode* inode;
905 status = vnode.Get(&inode);
909 inode->WriteLockInTransaction(transaction);
911 status = inode->Unlink(transaction);
1009 Inode* inode;
1011 status = vnode.Get(&inode);
1018 if (inode->IsDirectory())
1020 else if (inode->IsSymLink())
1031 // return inode->Unlink();
1041 if (existent->IsDirectory() != inode->IsDirectory()) {
1068 inode->WriteLockInTransaction(transaction);
1070 if (oldDirectory != newDirectory && inode->IsDirectory()) {
1071 DirectoryIterator inodeIterator(inode);
1076 (int32)inode->ID());
1085 status = inode->WriteBack(transaction);
1111 Inode* inode = (Inode*)_node->private_node;
1115 if (inode->IsDirectory() && (openMode & O_RWMASK) != 0)
1118 status_t status = inode->CheckPermissions(open_mode_to_access(openMode)
1130 cookie->last_size = inode->Size();
1134 status = inode->DisableFileCache();
1145 inode->WriteLockInTransaction(transaction);
1147 status_t status = inode->Resize(transaction, 0);
1149 status = inode->WriteBack(transaction);
1169 Inode* inode = (Inode*)_node->private_node;
1171 if (!inode->IsFile()) {
1173 return inode->IsDirectory() ? B_IS_A_DIRECTORY : B_BAD_VALUE;
1176 return inode->ReadAt(pos, (uint8*)buffer, _length);
1186 Inode* inode = (Inode*)_node->private_node;
1191 if (inode->IsDirectory()) {
1201 pos = inode->Size();
1206 status_t status = inode->WriteAt(transaction, pos, (const uint8*)buffer,
1212 ReadLocker lock(*inode->Lock());
1214 if (cookie->last_size != inode->Size()
1217 notify_stat_changed(volume->ID(), inode->ID(),
1219 cookie->last_size = inode->Size();
1242 Inode* inode = (Inode*)_node->private_node;
1244 if (inode->Size() != cookie->last_size)
1245 notify_stat_changed(volume->ID(), inode->ID(), B_STAT_SIZE);
1255 Inode* inode = (Inode*)_node->private_node;
1256 return inode->CheckPermissions(accessMode);
1264 Inode* inode = (Inode*)_node->private_node;
1266 if (!inode->IsSymLink())
1269 if (inode->Size() < *_bufferSize)
1270 *_bufferSize = inode->Size();
1272 if (inode->Size() > EXT2_SHORT_SYMLINK_LENGTH)
1273 return inode->ReadAt(0, (uint8 *)buffer, _bufferSize);
1275 memcpy(buffer, inode->Node().symlink, *_bufferSize);
1359 Inode* inode;
1360 status = vnode.Get(&inode);
1364 inode->WriteLockInTransaction(transaction);
1366 status = inode->Unlink(transaction);
1395 Inode* inode = (Inode*)_node->private_node;
1396 status_t status = inode->CheckPermissions(R_OK);
1400 if (!inode->IsDirectory())
1403 DirectoryIterator* iterator = new(std::nothrow) DirectoryIterator(inode);
1468 Inode* inode = (Inode*)_node->private_node;
1476 if (!inode->IsFile())
1509 Inode* inode = (Inode*)_node->private_node;
1511 Attribute attribute(inode);
1529 dirent->d_ino = inode->ID();
1563 Inode* inode = (Inode*)_node->private_node;
1564 Attribute attribute(inode);
1597 Inode* inode = (Inode*)_node->private_node;
1599 Attribute attribute(inode, cookie);
1619 Inode* inode = (Inode*)_node->private_node;
1621 Attribute attribute(inode, cookie);