[X Style (Pure) Android Development] SenK9:
OK I managed to intentionally recreate the issue, and capture some logs. My setup is portable storage, 200GB Sandisk Ultra, formatted in ext4.

1) My previous working setup was build 20150402, external SD working well and for reference:

mount | grep sdcard
/dev/block/vold/public:179_65 on /mnt/media_rw/sdcard1 type ext4 (rw,dirsync,context=u:object_r:sdcard_posix:s0,nosuid,nodev,noatime,data=ordered)
/dev/fuse on /mnt/runtime/default/sdcard1 type fuse (rw,nosuid,nodev,noexec,noatime,user_id=1023,group_id=1023,default_permissions,allow_other)
/dev/fuse on /storage/sdcard1 type fuse (rw,nosuid,nodev,noexec,noatime,user_id=1023,group_id=1023,default_permissions,allow_other)
/dev/fuse on /mnt/runtime/read/sdcard1 type fuse (rw,nosuid,nodev,noexec,noatime,user_id=1023,group_id=1023,default_permissions,allow_other)
/dev/fuse on /mnt/runtime/write/sdcard1 type fuse (rw,nosuid,nodev,noexec,noatime,user_id=1023,group_id=1023,default_permissions,allow_other)

2) I then dirty flashed the latest 20150406 build, and sure enough after bootup, 'SD card is corrupted, touch to fix', but I captured the following:

dmesg | grep sdcard
[ 835.615317,4] FUSE: SHORTCIRCUIT enabled [sdcard : 9757]!
[ 835.615320,5] FUSE: SHORTCIRCUIT enabled [sdcard : 9758]!
[ 835.615459,4] FUSE: SHORTCIRCUIT enabled [sdcard : 9759]!
[ 835.694974,3] type=1400 audit(1459942822.726:45): avc: denied { mounton } for uid=0 pid=389 comm="vold" path="/mnt/media_rw sdcard1" dev="tmpfs" ino=14415 scontext=u:r:vold:s0 tcontext=u:object_r:mnt_media_rw_file:s0 tclass=dir permissive=0
[ 836.559794,1] type=1400 audit(1459942823.593:47): avc: denied { mounton } for uid=0 pid=389 comm="vold" path="/mnt/media_rw sdcard1" dev="tmpfs" ino=14415 scontext=u:r:vold:s0 tcontext=u:object_r:mnt_media_rw_file:s0 tclass=dir permissive=0
[ 859.775787,1] type=1400 audit(1459942840.986:54): avc: denied { getattr } for uid=10215 pid=11906 comm="DefaultPool6" path="/storage/sdcard1" dev="tmpfs" ino=31086 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:storage_stub_file:s0 tclass=dir permissive=0
[ 859.778278,1] type=1400 audit(1459942840.989:55): avc: denied { getattr } for uid=10215 pid=11906 comm="DefaultPool6" path="/storage/sdcard1" dev="tmpfs" ino=31086 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:storage_stub_file:s0 tclass=dir permissive=0
[ 859.898932,1] type=1400 audit(1459942841.109:56): avc: denied { getattr } for uid=10215 pid=11906 comm="DefaultPool6" path="/storage/sdcard1" dev="tmpfs" ino=31086 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:storage_stub_file:s0 tclass=dir permissive=0
[ 859.899136,1] type=1400 audit(1459942841.109:57): avc: denied { getattr } for uid=10215 pid=11906 comm="DefaultPool6" path="/storage/sdcard1" dev="tmpfs" ino=31086 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:storage_stub_file:s0 tclass=dir permissive=0

From logcat:

01-17 08:10:21.083 389 389 W vold : type=1400 audit(0.0:19): avc: denied { mounton } for uid=0 path="/mnt/media_rw/sdcard1" dev="tmpfs" ino=14415 scontext=u:r:vold:s0 tcontext=u:object_r:mnt_media_rw_file:s0 tclass=dir permissive=0
01-17 08:10:21.573 389 389 W vold : type=1400 audit(0.0:21): avc: denied { mounton } for uid=0 path="/mnt/media_rw/sdcard1" dev="tmpfs" ino=14415 scontext=u:r:vold:s0 tcontext=u:object_r:mnt_media_rw_file:s0 tclass=dir permissive=0

More complete logcat output is attached (from egrep 'sdcard|mmc|storage') to this post.

It appears that there are errors related to storage access being denied to vold.

Hopefully this helps to narrow down the issue. I rolled back to my nandroid backup and all is working again. Let me know if there's anything else I can do to help ...