2012/2/10 Jeff Layton <jlayton@xxxxxxxxxxxxxxx>: > On Thu, 9 Feb 2012 21:08:12 +0300 > Pavel Shilovsky <piastry@xxxxxxxxxxx> wrote: > >> Currently we do inc_nlink/drop_nlink for a parent directory for every >> mkdir and rmdir calls. That's wrong when POSIX extensions are disabled >> because in this case a server doesn't do the same things and returns >> the old value on the next QueryInfo request. As the result, we update >> our value with the server one and then decrement it on every rmdir >> call - go to negative nlink values. >> >> Fix this by doing inc_nlink/drop_nlink for parent directory in mkdir >> and rmdir in POSIX case only. Also add cERROR when nlink value <= 2 >> and we still try to decrement it (possible broken servers). >> > > Rather than doing that, I think it would be better not to do the > inc/dec_nlink in either case and instead to set cifsi->time on the > parent to 0 for both cases. > > That should force it to have the directory attributes refetched at the > next opportunity. Since we're not doing that now, we're likely missing > out on stuff like directory mtime changes as well. > I think this is a good idea, thanks! I'll try it and post a patch if it's ok. -- Best regards, Pavel Shilovsky. -- To unsubscribe from this list: send the line "unsubscribe linux-cifs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html