]> granicus.if.org Git - zfs/commit
Fix removal of SA in sa_modify_attrs()
authorTim Chase <tim@chase2k.com>
Sun, 19 Oct 2014 03:50:01 +0000 (22:50 -0500)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 22 Jan 2015 00:35:14 +0000 (16:35 -0800)
commitb0cf0676c0beb5dcb149774a3264580a18304ac1
treeb4ca61b6a34a60f80dcfcc5eb6e6645f814b446b
parent841c9d43c725334a0a4b6174b6e1adea24f16cdd
Fix removal of SA in sa_modify_attrs()

The sa_modify_attrs() function can add, remove or replace an SA.
The main loop in the function uses the index "i" to iterate over the
existing SAs and uses the index "j" for writing them into a new buffer
via SA_ADD_BULK_ATTR().  The write index, "j" is incremented on remove
(SA_REMOVE) operations which leads to a corruption in the new SA buffer.
This patch remove the increment for SA_REMOVE operations.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Tim Chase <tim@chase2k.com>
Signed-off-by: Ned Bass <bass6@llnl.gov>
Closes #3028
module/zfs/sa.c