b=585183
We weren't telling the MDS what kind of unlink we were doing (unlink vs. rmdir), so, for example, if you called rmdir() on a file, the MDS would remove it and then the client VFS would return -ENODIR. Not so good. We send a 'mode' flag along with the unlink request now, that must be one of S_IFDIR or S_IFREG. I also fixed some unaligned structures in the MDS protocol, so if you update one node you must UPDATE THEM ALL. Minutiae: - in the intent policy function, if mds_reint returns EISDIR or ENOTDIR, still go ahead and send back the file attributes - in mds_reint_unlink, use the mode sent over the wire instead of the actual inode mode to determine which vfs unlink function to call
Showing
- lustre/include/linux/lustre_idl.h 6 additions, 3 deletionslustre/include/linux/lustre_idl.h
- lustre/include/linux/lustre_mds.h 17 additions, 14 deletionslustre/include/linux/lustre_mds.h
- lustre/ldlm/ldlm_lock.c 1 addition, 1 deletionlustre/ldlm/ldlm_lock.c
- lustre/lib/mds_updates.c 17 additions, 14 deletionslustre/lib/mds_updates.c
- lustre/llite/file.c 3 additions, 3 deletionslustre/llite/file.c
- lustre/llite/namei.c 24 additions, 16 deletionslustre/llite/namei.c
- lustre/mdc/mdc_reint.c 5 additions, 5 deletionslustre/mdc/mdc_reint.c
- lustre/mdc/mdc_request.c 13 additions, 12 deletionslustre/mdc/mdc_request.c
- lustre/mds/handler.c 3 additions, 1 deletionlustre/mds/handler.c
- lustre/mds/mds_reint.c 5 additions, 7 deletionslustre/mds/mds_reint.c
- lustre/obdclass/genops.c 1 addition, 1 deletionlustre/obdclass/genops.c
- lustre/osc/osc_request.c 5 additions, 4 deletionslustre/osc/osc_request.c
- lustre/scripts/dodiff.sh 5 additions, 0 deletionslustre/scripts/dodiff.sh
Loading
Please register or sign in to comment