run_list_element * ntfs_rl_insert (run_list_element * dst, int dsize, run_list_element * src, int ssize, int loc);
Insert the run list src before element loc in the run list dst. Merge the left end of the new run list, if necessary. Adjust the size of the hole after the inserted run list.
It is up to the caller to serialize access to the run lists dst and src.
On success, return a pointer to the new, combined, run list. Note, both run lists dst and src are deallocated before returning so you cannot use the pointers for anything any more. (Strictly speaking the returned run list may be the same as dst but this is irrelevant.)
On error, return -errno. Both run lists are left unmodified. The following
-ENOMEM - Not enough memory to allocate run list array. -EINVAL - Invalid parameters were passed in.