aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBryan Brattlof <hello@bryanbrattlof.com>2020-07-15 17:13:54 -0400
committerBryan Brattlof <hello@bryanbrattlof.com>2020-07-15 17:13:54 -0400
commit2f459fda87590862de03027bc549085e13504d27 (patch)
tree7e507032cef49d3730dfb1a5a7846f961873babb
parentfea7dcc6f4a7fab76d154ec05eca49ae1a281e6c (diff)
downloadeudyptula-challenge-2f459fda87590862de03027bc549085e13504d27.tar.gz
eudyptula-challenge-2f459fda87590862de03027bc549085e13504d27.tar.bz2
task 20: add task readmeHEADcanon
-rw-r--r--readme.rst2
-rw-r--r--tasks/20/readme39
2 files changed, 41 insertions, 0 deletions
diff --git a/readme.rst b/readme.rst
index 7b94861..e741f3a 100644
--- a/readme.rst
+++ b/readme.rst
@@ -50,3 +50,5 @@ Here are the links to each task's readme:
18. Handling Delayed Work: `task <https://git.bryanbrattlof.com/eudyptula-challenge/tree/tasks/18/readme>`__
19. Networking Filters: `task <https://git.bryanbrattlof.com/eudyptula-challenge/tree/tasks/19/readme>`__
+
+20. FAT ioctl: `task <https://git.bryanbrattlof.com/eudyptula-challenge/tree/tasks/20/readme>`__
diff --git a/tasks/20/readme b/tasks/20/readme
new file mode 100644
index 0000000..bbc2e37
--- /dev/null
+++ b/tasks/20/readme
@@ -0,0 +1,39 @@
+Task 20
+=======
+
+Networking filters turned out to be not all that complex in the end,
+great work with that.
+
+So, here's the final task.
+
+There might be other tasks that get created and sent out later on, but
+the original challenge had 20 tasks, so after finishing this one, you
+can consider yourself done!
+
+Let's try something a bit harder. Something that might cause some data
+loss on a filesystem, always a fun thing to play with, if for no other
+reason than to not be afraid of things like that in the future.
+
+This task requires you to work on the fat filesystem code:
+
+ - Add an ioctl to modify the volume label of a mounted fat filesystem.
+ Be sure to handle both 16 and 32 bit fat filesystems {hint!}
+
+ - Provide a userspace .c program to test this new ioctl.
+
+That's it! Seems so simple, right? I wonder why that option isn't in
+the kernel tree already...
+
+Anyway, provide a patch to the kernel, and the .c file used to test the
+new ioctl, as well as "proof" of this working. Make sure you don't run
+into 32/64bit kernel issues with the ioctl, if you do things correctly,
+you shouldn't have any problems.
+
+I recommend doing this work on either a loop-back fat filesystem on your
+"normal" filesystem, or on a USB stick. Either will work just as well,
+and make things easier to debug and test.
+
+Watch out for locking issues, as well as dirty filesystem state
+problems.
+
+Best of luck!