[roll] Roll fuchsia [starnix][vfs] fail `create_entry()` when path contains embedded '/'

When adding a node to the device registry, we expect to be able to
create nodes in subdirectories. E.g., `mapper/control`.

At present, this fails silently. That happens because
1. devtmpfs_create_device() doesn't have any special-case handling
   for embedded path separators.
2. DirEntry::create_entry() also lacks any special-case handling.

I think it's best to add special-case handling in devtmpfs, because
auto-magically handling embedded path separators isn't desirable
everywhere. E.g., `mkdir("foo/bar/baz")` should fail unless
`foo` and `bar` are already present.

In this CL, I update the VFS code to report an error when asked
to `create_entry()` with an embedded separator.

In a later CL, I'll update devtmpfs to special-case device names
with embedded separators.

Original-Bug: b/310963779
Test: manual

Manual test
-----------
1. Revert https://fxrev.dev/958094
2. Boot image
3. Observe the following error in the system logs:
   ERROR: [src/starnix/kernel/device/registry.rs(305)] Cannot add device DeviceMetadata { bus: None, class: (Weak), name: [109, 97, 112, 112, 101, 114, 47, 99, 111, 110, 116, 114, 111, 108], device_type: DeviceType(2796), mode: Char } in devtmpfs (EINVAL (22), source: ../../src/starnix/kernel/vfs/dir_entry.rs:289:20, context: None)

Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/957401
Original-Revision: 9b3f2a72207789c13801de7575a29baefd5d20ae
GitOrigin-RevId: 3b2d54e611d8029965afb8fef8a0c15287f46c6a
Change-Id: I8977a37ee76c7f3ed7fc9c9a75cc5ab47b018002
1 file changed
tree: 5a5c4fb37a2559bae1f1f1cac6e6bdf453d9a6ed
  1. git-hooks/
  2. infra/
  3. third_party/
  4. cts
  5. firmware
  6. flower
  7. jiri.lock
  8. MILESTONE
  9. minimal
  10. prebuilts
  11. README.md
  12. stem
  13. test_durations
  14. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.