K 10 svn:author V 4 jeff K 8 svn:date V 27 2010-04-23T09:09:39.294153Z K 7 svn:log V 824 Fix snapshots on SUJ protected filesystems. - Expunge the journal file from the snapshot filesystem. This leaves it present with a zero byte file. - Unfortunately expunging is insufficient to prevent a deadlock between the snaplk and jwait. Implement a B_NOCOPY flag that causes a buf write to skip ffs_copyonwrite all together. - When removing a snapshot sync the re-written indirect blocks before calling truncate. This is a long-standing snapshot bug that applies to any softdep protected ffs filesystem. The dirtied indirect blocks have no dependencies so softdep_setup_freeblocks will discard their contents and use the physical disk block addresses in indir_trunc() when removing the file. This can lead to indir_trunc discovering block pointers with BLK_NOCOPY and BLK_SNAP values. END