Hi,

Operation 1: I read there is no way of renaming a ou or an entry if it has children.

Please refer:
http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Creating_Directory_Entries-LDIF_Update_Statements.html#LDIF_Update_Statements-Renaming_an_Entry_Using_LDIF

new RDN: ou= alumini (keep existing values)
modifying RDN of entry ou=students, o=school.com
ldap_rename: Operation not allowed on nonleaf

Since the ou students has child entries in it. 

Operation 2: But, ldbm_modrdn.c file has the methods to rename the child entries also when their parent entry is renamed.
i.e deleting the old parent DN and changing the new superior DN (new parent modified using modrdn operation).

Example: moddn_rename_children

When the operation 1. is not allowed how Operation 2 is possible ? What is the necessity of using methods inside
 ldbm_modrdn.c file. 

If I am not wrong, can anybody clarify my doubt.

Thanks in advance,

Brown Diego.