sheep/http: fix parallely append-upload problem

The 'append' opreation in sheepdog contains:

1. lock(data_vid)
2. read onode
3. allocate space and set o_extent.data_len to zero
4. write onode down
5. unlock(data_vid)
6. read uploading data and set o_extent.data_len in terms of req->data_length
7. write onode down

We unlock(data_vid) too early to protect the updating of 'o_extent.data_len'
so one process may overwrite the space allocated by another process.
To solve this problem, we move set operation of 'data_len' into lock region
and modify the code to write data_vid.

Signed-off-by: Robin Dong <sanbai@taobao.com>