rem: status = inode->Trim(&transaction);
add: status = inode->Trim(transaction);
context: bfs_free_cookie(void *_ns, void *_node, void *_cookie){	FUNCTION();	if (_ns == NULL || _node == NULL || _cookie == NULL)		return B_BAD_VALUE;	file_cookie *cookie = (file_cookie *)_cookie;	Volume *volume = (Volume *)_ns;	Inode *inode = (Inode *)_node;	if (cookie->open_mode & O_RWMASK) {#ifdef UNSAFE_GET_VNODE		RecursiveLocker locker(volume->Lock());#endif		ReadLocked locked(inode->Lock());		// trim the preallocated blocks and update the size,		// and last_modified indices if needed		Transaction transaction(volume, inode->BlockNumber());		status_t status = B_OK;		bool changed = false;		Index index(volume);		if (inode->OldSize() != inode->Size()) {			status = inode->Trim(&transaction);			if (status < B_OK)				FATAL(("Could not trim preallocated blocks!"));				index.UpdateSize(&transaction, inode);			changed = true;		}		if (inode->OldLastModified() != inode->LastModified()) {			index.UpdateLastModified(&transaction, inode, inode->LastModified());			changed = true;						// updating the index doesn't write back the inode			inode->WriteBack(&transaction);		}		if (status == B_OK)			transaction.Done();		if (changed)			notify_listener(B_STAT_CHANGED, volume->ID(), 0, 0, inode->ID(), NULL);	}	if (inode->Flags() & INODE_NO_CACHE) {		volume->Pool().ReleaseBuffers();		inode->Node()->flags &= HOST_ENDIAN_TO_BFS_INT32(~INODE_NO_CACHE);			// We don't need to save the inode, because INODE_NO_CACHE is a			// non-permanent flag which will be removed when the inode is loaded			// into memory.	}	if (inode->Flags() & INODE_CHKBFS_RUNNING) {		// "chkbfs" exited abnormally, so we have to stop it here...		FATAL(("check process was aborted!\n"));		volume->Allocator().StopChecking(NULL);	}	return B_OK;}