2.6.32-stable review patch. If anyone has any objections, please let us know.

------------------

(cherry picked from commit 2de770a406b06dfc619faabbf5d85c835ed3f2e1)

Previously add_dirent_to_buf() did not free its passed-in buffer headin the case of ENOSPC, since in some cases the caller still needed it.However, this led to potential buffer head leaks since not all callersdealt with this correctly. Fix this by making simplifying the freeingconvention; now add_dirent_to_buf() *never* frees the passed-in bufferhead, and leaves that to the responsibility of its caller. This makesthings cleaner and easier to prove that the code is neither leakingbuffer heads or calling brelse() one time too many.