On Fri, Jun 24, 2011 at 10:51:53AM +0400, Pavel Shilovsky wrote:
> +static bool
> +allocate_buffers(char **pbigbuf, char **psmallbuf, unsigned int size,
> + bool isLargeBuf)
No p-prefixes for pointers, and no camelCase, please.
> +{
> + char *bigbuf = *pbigbuf, *smallbuf = *psmallbuf;
> +
> + if (bigbuf == NULL) {
> + bigbuf = (char *)cifs_buf_get();
> + if (!bigbuf) {
> + cERROR(1, "No memory for large SMB response");
> + msleep(3000);
> + /* retry will check if exiting */
> + return false;
> + }
> + } else if (isLargeBuf) {
> + /* we are reusing a dirty large buf, clear its start */
> + memset(bigbuf, 0, size);
> + }
> +
> + if (smallbuf == NULL) {
> + smallbuf = (char *)cifs_small_buf_get();
> + if (!smallbuf) {
> + cERROR(1, "No memory for SMB response");
> + msleep(1000);
> + /* retry will check if exiting */
> + return false;
> + }
> + /* beginning of smb buffer is cleared in our buf_get */
> + } else /* if existing small buf clear beginning */
> + memset(smallbuf, 0, size);
> +
> + *pbigbuf = bigbuf;
> + *psmallbuf = smallbuf;
> +
> + return true;
But in the end this whole code doesn't make any sense at all. Just
sleeping when failing to memory is a bad idea, as is all this partial
reuse stuff.
Someone needs to rearchitect this code to actually make sense.
--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html