Commit Graph

60514 Commits

Author SHA1 Message Date
Michael Lotz
66d6afec5a virtio_scsi: Abort requests on timeout.
Previously the CCB would never complete when a timeout occured, leading
to all further IO stopping.

Abort the request by setting the CCB status to aborted and handing the
CCB back to the SCSI layer. That one will then handle the error (and
possibly retrying). This is similar to how such errors are handled in
AHCI and the ATA stack.

Since it is now possible that we receive a completion interrupt for an
already aborted request, we need to keep track of what request the
interrupts belong to and only notify when the current one completes. As
there currently can't be multiple requests in flight, a simple counter
is used.

Change-Id: Ib80e146605efd2f81123803f424cc7f66f52a6c8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1815
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-09-02 14:30:29 +00:00
Michael Lotz
9a2911ca8c virtio: Rework queue_dequeue to return a boolean.
It previously returned the cookie directly, which made it impossible
to distinguish between a NULL cookie and the function not having
anything to dequeue. This lead to some code setting a cookie that was
not actually used.

Return the dequeue status as a boolean and provide the cookie with an
optionally handed in pointer instead and adjust all users.

Change-Id: Iaac1726ac4bc7ae42bb96b8f0915852b6def5822
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1814
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-09-02 14:30:29 +00:00
Michael Lotz
26c0b5e701 virtio_scsi: Fix theoretical use of possibly modified fCCB.
As soon as the lock is released, fCCB may change due to a new Start().
With the current use of the request class this could not happen, so
this is purely theoretical.

Change-Id: I6caee7f904f1864621aeef088e2bd611eb3b0a1f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1813
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-09-02 14:30:29 +00:00
Michael Lotz
85fbdab0a6 virtio_scsi: Remove unused fExpectsInterrupt and its spinlock.
The value is never actually checked. The use of a condition variable
makes it redundant since it will already either have a waiting entry,
or not.

Change-Id: Iafaecb7f9e56a2cf8932e05b82aad2b350fbce1f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1812
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2019-09-02 14:30:29 +00:00
Michael Lotz
d2fecacd0f virtio_scsi: Whitespace and line length cleanup only.
Change-Id: I12efb32c9222b9397bc44be927f37700e030e89a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1811
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2019-09-02 14:30:29 +00:00
Niels Sascha Reedijk
03b52202d1 API Docs: various AppKit improvements 2019-09-02 06:59:51 +01:00
Niels Sascha Reedijk
5b2a8e3aef API Docs: Add new methods to BMessage 2019-09-02 06:59:50 +01:00
Niels Sascha Reedijk
a72f3582be API Docs: Add placeholder for Key.h, KeyStore.h and Notification.h 2019-09-02 06:59:50 +01:00
Autocomitter
0cacf937a0 Update translations from Pootle 2019-09-01 09:06:54 +00:00
Niels Sascha Reedijk
55fdd59f65 i18n: fix minor issues in English strings
Thanks for the reports via Pootle (i18n.haiku-os.org)
2019-09-01 07:11:35 +01:00
Augustin Cavalier
763047bfb1 NTFS: Merge changes to the utils from upstream. 2019-09-01 00:17:10 -04:00
Andrew Lindesay
01339a54db HaikuDepot: Display User Usage Conditions
This change will allow the user to view the user
usage conditions from the HDS system in a
HaikuDepot window.  The display of the text is not
currently well formatted in that the Markdown is
not yet properly parsed, but the display of the
data is working.

Relates to 15209

Change-Id: Ia6ad4ef995f5fe3c29c40221964e44d4554a033d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1750
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-09-01 03:08:11 +00:00
Simon South
75e5739772 BWindow: Do not invoke BView handlers directly
When dispatching a message to a BView, pass the message on to the view's
MessageReceived() method rather than invoking one of its handlers (e.g.
KeyDown() or MouseDown()) directly.

This commit moves the existing handler-invoking logic from
BWindow::DispatchMessage() into BView::MessageReceived(), preserving the
existing functionality.

Fixes #15254.

Change-Id: I230c0781df13e54e08573a5a31d7550520c060d5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1723
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Ryan Leavengood <leavengood@gmail.com>
2019-09-01 03:06:36 +00:00
CodeforEvolution
9e54316c52 Fix the build of test_app_server on 64bit
So many Jamfiles to search through...runs also, but there
are lots of graphical glitches

Change-Id: Ibf9e64566a5b8c5742792ac9b1b0f9ccc6693c8d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1753
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-09-01 03:04:52 +00:00
Jaroslaw Pelczar
1761cb8e6f arm64: Add more headers for code compilation
This makes ARM64 target compile more files. This patch is one of
series of patches to support new architecture, as fixes in many
places are required just to compile the code.

Signed-off-by: Jaroslaw Pelczar <jarek@jpelczar.com>
Change-Id: Ia060612733cd3a0fcb781fec449da164ed635b8e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1807
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-09-01 03:02:49 +00:00
Jaroslaw Pelczar
ef21ae46d9 arm64: Update license in headers
Signed-off-by: Jaroslaw Pelczar <jarek@jpelczar.com>
Change-Id: I545722b4f499addf7be557d85ee90f9847f3bcd7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1804
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-09-01 03:02:49 +00:00
Augustin Cavalier
29536b4c4b Mail: Don't use strtok.
That seems like a bad idea...
2019-08-31 23:01:51 -04:00
Augustin Cavalier
58a582ff22 ramfs: Set the vnode's cache object when opening files.
Now it is possible to run applications, do Git checkouts, etc.
on a ramfs (and those seem to work just fine -- a git checkout
followed by a git fsck both succeeded.)
2019-08-31 20:38:19 -04:00
Augustin Cavalier
a9be0efb2e kernel/fs: Add support for setting custom VMCaches in vnodes.
This adds one (private) VFS function, and checks in all usages of
the vnode->cache as a VMVnodeCache that it really is one. (Generic
usages, for the moment just the ReleaseRef() calls in vnode
destruction, are intentionally not touched.)

This will be used by ramfs to set the cache from its own,
so that map_file() calls on a ramfs can work.
2019-08-31 20:38:18 -04:00
Augustin Cavalier
69c34116f0 ram_disk: Add note about code duplication with ramfs. 2019-08-31 20:38:18 -04:00
Augustin Cavalier
181d68fbd4 ramfs: GCC 2 fixes. 2019-08-31 20:38:18 -04:00
Augustin Cavalier
d2ab19b331 ramfs: Drop now-unused Block* classes. 2019-08-31 20:38:18 -04:00
Augustin Cavalier
cbc0726819 ramfs: Overhaul block allocation to use a VMCache and physical pages.
This is a massive efficiency improvement as well as a large address
space usage savings. It also paves the way for file_map() support...
2019-08-31 20:38:18 -04:00
Augustin Cavalier
c8f0cc1afa ramfs: Fix bool/status mixup in DirectoryEntryTable.
Now you can actually delete files again.
2019-08-31 20:38:18 -04:00
Augustin Cavalier
677fca26d7 ramfs: Remove the Attribute::GetKey overload that accepts a ptr-ptr.
This only works because DataCollector stores its data in blocks
which are mapped into the kernel's address space. After the
next series of commits, it won't, so we can't depend on that.

This required some changes to the indexes to keep a copy of the
keys.
2019-08-31 20:38:18 -04:00
Augustin Cavalier
6d244f23b8 ramfs: Use rw_lock instead of recursive_lock for r/w locking.
Also use recursive_lock directly instead of the userlandfs shim class.
2019-08-31 20:38:18 -04:00
Adrien Destugues
27823b29cd Time preferences: remove \r
We are not Windows, we don't need these.
2019-08-31 18:51:02 +02:00
Adrien Destugues
60b52ce0bc HashMapCatalog: handle more standard escpae sequences.
Fixes #14705
2019-08-31 18:51:02 +02:00
Augustin Cavalier
91c8637753 ramfs: Drop OpenTracker OpenHashTable and the custom AreaUtils.
Following removal of NodeChildTable, they aren't used.
2019-08-31 12:28:09 -04:00
Augustin Cavalier
e583221270 ramfs: Replace the NodeChildTable with a DirectoryEntryTable.
Now that Attributes don't use a table, we can replace the generic
system with a specific DirectoryEntryTable, upgrading to BOpenHashTable
in the process.
2019-08-31 12:28:09 -04:00
Augustin Cavalier
019d327dce ramfs: Just use the linked list for attributes instead of a hash table.
This is what packagefs does; so if it's performant enough for packagefs,
it's performant enough for us. Greatly simplifies this code (and will
allow for further simplification of the NodeChildHash.)
2019-08-31 12:28:09 -04:00
Augustin Cavalier
565c58a527 ramfs: Adapt NodeTable to use BOpenHashTable. 2019-08-31 12:28:09 -04:00
Adrien Destugues
b4e2eff2f6 DebugWindow: improve layout
Fixes #15155.
2019-08-31 18:26:23 +02:00
Adrien Destugues
5f996be3c6 InfoWindow: more window sizing improvements
Fixes #15310 and other problem mentioned in comments threrein.
2019-08-31 17:18:22 +02:00
Adrien Destugues
72ce594753 InfoWindow: allow some resizing of attribute columns
Fixes #15319
2019-08-31 17:18:22 +02:00
Augustin Cavalier
349ab0050a ramfs: Fix miscellaneous warnings. 2019-08-30 20:53:29 -04:00
Augustin Cavalier
2914364270 ramfs: Fix debugging print macro invocations and use B_PRI*. 2019-08-30 20:53:15 -04:00
Augustin Cavalier
b2c20927e8 ramfs: Fix setting the ops and an incorrect node cast.
And now ramfs works!
2019-08-30 20:31:40 -04:00
Augustin Cavalier
c3e0275cc5 ramfs: Adapt to current kernel FS APIs and fully fix the build. 2019-08-30 19:54:54 -04:00
Augustin Cavalier
b9795faf5d ramfs: Add MIT license header to all files lacking copyright info.
OK'ed by Ingo via email.
2019-08-30 18:48:11 -04:00
Augustin Cavalier
731be7dde1 Relicense all of Ingo's BSD/MIT+advertising clause'd code as plain MIT.
Via email:
> I'm fine with re-licensing all code using BSD license + advertising
> clause to MIT license.
2019-08-30 18:27:35 -04:00
Augustin Cavalier
47a21c5c89 s/Haiku License/MIT License/g.
They are the same thing.
2019-08-30 18:16:02 -04:00
Augustin Cavalier
128781e740 build/jam: Inline HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR where possible.
The "exec" tool can only handle one command with environs set at
the beginning of the line, so now we set the ADD_BUILD_COMPAT...
in this format. This also seems to be a general performance
improvement to builds using real shells, too.

Change-Id: If4b3117651b5475039d5e8116cd3de398582290a
2019-08-30 17:11:50 -04:00
Augustin Cavalier
12eb0e5d89 libroot: Add a private __look_up_in_path function.
Refactored out of execvpe. Originally I did this for my attempted
change to posix_spawn, but that change turned out to be wrong and
actually not that beneficial. This bit seems potentially useful,
though, so here it is.
2019-08-30 16:24:09 -04:00
Augustin Cavalier
852cf6de56 tests: Correct includes ordering.
Spotted by korli.
2019-08-30 16:16:10 -04:00
Jaroslaw Pelczar
273b16e8aa EasyPenInputDevice.cpp: Fix broken code
Signed-off-by: Jaroslaw Pelczar <jarek@jpelczar.com>
Change-Id: I28f4c5533d2e816ed79983c846ea41da218bc1a1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1774
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-08-30 19:25:39 +00:00
oco27
fea647905f usb_midi: Fix an error when unpluging a MIDI device
- It appears that, in this case, port->open_fd is NULL.
    Maybe, this would require some investigation too.
    But in this case, i think it is better to remove port
    from the device list anyway because remove_port will freed
    the port at the end of the loop.
    And adding 0xdeadbeef in the device list is not a good idea.

Change-Id: Id6b55f5e19ebbbbb48f0fa0b7d9ac65b996dbaf2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1746
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-08-30 19:21:09 +00:00
Adrien Destugues
df6cc9b5c9 BRoster: dereference symlinks when building RosterAppInfo
Should fix #15313

Change-Id: Ibd1d4f4195d794841ecddf3534177982cf894bcb
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1803
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-08-30 19:20:06 +00:00
Adrien Destugues
e8f5d1ca66 bfs: erase ext2 superblock when initializing
Having valid superblocks from multiple filesystems on the same disk is
confusing, let's try to avoid that.

Change-Id: I1a58843d45ea52193a77faaf8dcc3ca6a049406e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1802
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-08-30 19:18:20 +00:00
Adrien Destugues
354311b57b filesystems: bump priority of BFS over others
If multipole filesystems think they can handle a volume, it makes sense
to assume the native one is to be used.

Makes my partitions with a BFS superblock and a leftover ext2 superblock
on them mountable again without manually specifying the filesystem type.

Fixes #15045.

Change-Id: Icb694472aa3de0a79e5f7d3c54976038e1e2590a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1801
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-08-30 19:18:20 +00:00