I have meanwhile done some more readings on the
linux mtd site, which is rather technical, and performed some tests on my dns-320L-rev-A1 box, which also shown some nand errors.
Summarizing: there are single bit errors on a block that can be automatically corrected by error-correcting-code (ECC), and those can be bit-flip errors, read-disturbance errors (even on *another* "partition"), and other. Only when the number of errors reach a certain number will the block be marked as bad.
On my box during boot (probably when "settings" from mtd5 are read), I get errors on mtd6:
Those are clearly "read-disturbance" errors, as mtd6 is never used for any purpose. The errors are also not single bit, as they are uncorrectable, and the ECC can only correct a single bit in error and report error when more bits are in error.
So I performed several 'nandtest' on mtd6, which runs fine, without any errors... The same nandtest on mtd5 (where settings are saved) didn't reveal nothing special.
But 'nanddump' on mtd5/6 sometimes report ecc corrected errors and sometimes non-correctable errors:
[root@DNS-320L]# nanddump -f /dev/null /dev/mtd6
...
[root@DNS-320L]# nanddump -f /dev/null /dev/mtd6
...
ECC: 8 uncorrectable bitflip(s) at offset 0x00000000
ECC: 8 uncorrectable bitflip(s) at offset 0x00000800
[root@DNS-320L]# nanddump -f /dev/null /dev/mtd6
...
That sequence shows that the nanddump initial report is the accumulated stats for the device.
Is ECC working? Yes, as the following tests on mtd5 shows:
[root@DNS-320L]# nanddump -f /dev/null /dev/mtd5
...
ECC: 1 corrected bitflip(s) at offset 0x00000000
ECC: 1 corrected bitflip(s) at offset 0x00000800
[root@DNS-320L]# nanddump -f /dev/null /dev/mtd5
...
So, for my box, at this moment, ECC can as expected correct single bitflips on mtd5, and errors in mtd6 are also induced by reading from mtd5 -- that's the so called "read-disturbance".
Notice that mtd1/2 (essential for booting Alt-F) present no errors, and mtd3 (used but not essential for Alt-F) has 7 uncorrectable errors (which didn't grow during the "session").
I also notice that mtd0 (essential for booting the box) has many errors, but as it is loaded by the SoC eeprom code (the primary bootloader), it is possible that it uses a different ecc correcting technique -- I read somewhere that nands first blocks are specially rugged, as they usually contain the secondary bootloader (u-boot) and are absolutely essential.
I also performed 'nandtest -k -m' on mtd1/2/5/6, which not only reads the nand but also writes on it (and restores its initial content if '-k' is used and there is no power cut, so ***NEVER*** use it on mtd0 and only use it on mtd1/2 if you have soldered a serial adapter on the box), but oddly it shows nothing special. nandtest can eventually be used to simulate several firmware flashing, test-stressing the nand if that is in any way desired.
I have also created JFFS2 filesystems on mtd5/mtd6, as that represents a more real world nand usage, but again that didn't change things.
By the way, 'loadsave_settings -fm' does that on mtd5, just be sure to "save settings" ('loadsave_settings -sf') immediately afterwards.
The DNS-327L uses UBIFS instead of JFFS2, which seems to be more robust, but I don't thing that to make a difference regarding bitflips and read-disturbances (but I think to remember that the 327L uses a more powerful ECC algorithm, capable of correcting more than a single bit error per block)
To conclude, If your box is "mission critical", that's better to get a substitute.
In your case (and mine), only mtd5 seems to be at risk, and that is where "settings" are saved; as the box boots OK without customized (yours) settings, if mtd5 starts to be unreliable, there is only the inconvenient of having to load settings from a backup PC after a reboot or power cut.
Sorry for being so (oversimplified) technical and to provide no real help other than saying "you are not alone".