Lines Matching refs:inode

207 		ERROR("invalid inode id %" B_PRIdINO " requested!\n", id);
211 Inode* inode = new(std::nothrow) Inode(volume, id);
212 if (inode == NULL)
215 status_t status = inode->InitCheck();
217 delete inode;
220 _node->private_node = inode;
222 *_type = inode->Mode();
244 Inode* inode = (Inode*)_node->private_node;
245 ObjectDeleter<Inode> inodeDeleter(inode);
247 if (!inode->IsDeleted())
253 if (!inode->IsSymLink() || inode->Size() >= EXT2_SHORT_SYMLINK_LENGTH) {
255 status_t status = inode->Resize(transaction, 0);
261 status_t status = volume->RemoveOrphan(transaction, inode->ID());
266 inode->Node().SetDeletionTime(real_time_clock());
268 status = inode->WriteBack(transaction);
272 TRACE("ext2_remove_vnode(): Freeing inode\n");
273 status = volume->FreeInode(transaction, inode->ID(), inode->IsDirectory());
295 Inode* inode = (Inode*)_node->private_node;
297 if (inode->FileCache() == NULL)
300 rw_lock_read_lock(inode->Lock());
311 status = file_map_translate(inode->Map(), pos, bytesLeft, fileVecs,
328 rw_lock_read_unlock(inode->Lock());
339 Inode* inode = (Inode*)_node->private_node;
344 if (inode->FileCache() == NULL)
347 rw_lock_read_lock(inode->Lock());
358 status = file_map_translate(inode->Map(), pos, bytesLeft, fileVecs,
375 rw_lock_read_unlock(inode->Lock());
387 Inode* inode = (Inode*)_node->private_node;
393 status_t status = inode->FindBlock(offset, block, &count);
428 if (offset >= inode->Size() || size <= blockLength) {
431 TRACE("ext2_get_file_map for inode %" B_PRIdINO "\n", inode->ID());
536 Inode* inode = (Inode*)_node->private_node;
538 if (*offset >= inode->Size())
541 while (*offset < inode->Size()) {
544 status_t status = inode->FindBlock(*offset, block, &count);
554 if (*offset > inode->Size())
555 *offset = inode->Size();
581 Inode* inode = (Inode*)_node->private_node;
582 return inode->Sync();
589 Inode* inode = (Inode*)_node->private_node;
590 const ext2_inode& node = inode->Node();
592 stat->st_dev = inode->GetVolume()->ID();
593 stat->st_ino = inode->ID();
602 inode->GetAccessTime(&stat->st_atim);
603 inode->GetModificationTime(&stat->st_mtim);
604 inode->GetChangeTime(&stat->st_ctim);
605 inode->GetCreationTime(&stat->st_crtim);
607 stat->st_size = inode->Size();
608 stat->st_blocks = inode->NumBlocks();
624 Inode* inode = (Inode*)_node->private_node;
626 ext2_inode& node = inode->Node();
631 bool hasWriteAccess = inode->CheckPermissions(W_OK) == B_OK;
635 inode->WriteLockInTransaction(transaction);
637 if ((mask & B_STAT_SIZE) != 0 && inode->Size() != stat->st_size) {
638 if (inode->IsDirectory())
640 if (!inode->IsFile())
646 (long)inode->Size(), (long)stat->st_size);
648 off_t oldSize = inode->Size();
650 status_t status = inode->Resize(transaction, stat->st_size);
655 rw_lock_write_unlock(inode->Lock());
656 inode->FillGapWithZeros(oldSize, inode->Size());
657 rw_lock_write_lock(inode->Lock());
704 inode->SetModificationTime(&newTimespec);
710 inode->SetCreationTime(&stat->st_crtim);
713 status_t status = inode->WriteBack(transaction);
717 notify_stat_changed(volume->ID(), -1, inode->ID(), mask);
754 TRACE("ext2_create(): Creating inode\n");
756 Inode* inode;
760 &inode, &gExt2VnodeOps);
764 TRACE("ext2_create(): Created inode\n");
767 status = inode->DisableFileCache();
905 Inode* inode;
906 status = vnode.Get(&inode);
910 inode->WriteLockInTransaction(transaction);
912 status = inode->Unlink(transaction);
1014 Inode* inode;
1016 status = vnode.Get(&inode);
1023 if (inode->IsDirectory())
1025 else if (inode->IsSymLink())
1037 // return inode->Unlink();
1047 if (existent->IsDirectory() != inode->IsDirectory()) {
1092 inode->WriteLockInTransaction(transaction);
1094 if (oldDirectory != newDirectory && inode->IsDirectory()) {
1095 DirectoryIterator inodeIterator(inode);
1100 B_PRIdINO "\n", inode->ID());
1115 ERROR("Error while writing back the destination folder inode\n");
1118 status = inode->WriteBack(transaction);
1144 Inode* inode = (Inode*)_node->private_node;
1148 if (inode->IsDirectory() && (openMode & O_RWMASK) != 0)
1151 status_t status = inode->CheckPermissions(open_mode_to_access(openMode)
1163 cookie->last_size = inode->Size();
1168 status = inode->DisableFileCache();
1171 fileCacheEnabler.SetTo(inode);
1180 inode->WriteLockInTransaction(transaction);
1182 status_t status = inode->Resize(transaction, 0);
1184 status = inode->WriteBack(transaction);
1205 Inode* inode = (Inode*)_node->private_node;
1207 if (!inode->IsFile()) {
1209 return inode->IsDirectory() ? B_IS_A_DIRECTORY : B_BAD_VALUE;
1212 return inode->ReadAt(pos, (uint8*)buffer, _length);
1222 Inode* inode = (Inode*)_node->private_node;
1227 if (inode->IsDirectory()) {
1237 pos = inode->Size();
1242 status_t status = inode->WriteAt(transaction, pos, (const uint8*)buffer,
1248 ReadLocker lock(*inode->Lock());
1250 if (cookie->last_size != inode->Size()
1253 notify_stat_changed(volume->ID(), -1, inode->ID(),
1255 cookie->last_size = inode->Size();
1278 Inode* inode = (Inode*)_node->private_node;
1280 if (inode->Size() != cookie->last_size)
1281 notify_stat_changed(volume->ID(), -1, inode->ID(), B_STAT_SIZE);
1284 inode->EnableFileCache();
1294 Inode* inode = (Inode*)_node->private_node;
1295 return inode->CheckPermissions(accessMode);
1303 Inode* inode = (Inode*)_node->private_node;
1305 if (!inode->IsSymLink())
1308 if (inode->Size() > EXT2_SHORT_SYMLINK_LENGTH) {
1309 status_t result = inode->ReadAt(0, reinterpret_cast<uint8*>(buffer),
1314 size_t bytesToCopy = std::min(static_cast<size_t>(inode->Size()),
1317 memcpy(buffer, inode->Node().symlink, bytesToCopy);
1320 *_bufferSize = inode->Size();
1404 Inode* inode;
1405 status = vnode.Get(&inode);
1409 inode->WriteLockInTransaction(transaction);
1411 status = inode->Unlink(transaction);
1440 Inode* inode = (Inode*)_node->private_node;
1441 status_t status = inode->CheckPermissions(R_OK);
1445 if (!inode->IsDirectory())
1448 DirectoryIterator* iterator = new(std::nothrow) DirectoryIterator(inode);
1528 Inode* inode = (Inode*)_node->private_node;
1536 if (!inode->IsFile())
1569 Inode* inode = (Inode*)_node->private_node;
1571 Attribute attribute(inode);
1589 dirent->d_ino = inode->ID();
1615 Inode* inode = (Inode*)_node->private_node;
1616 Attribute attribute(inode);
1649 Inode* inode = (Inode*)_node->private_node;
1651 Attribute attribute(inode, cookie);
1662 Inode* inode = (Inode*)_node->private_node;
1664 Attribute attribute(inode, cookie);