On Thu, Mar 30, 2023 at 11:15 AM NeilBrown <neilb@xxxxxxx> wrote: > > On Thu, 30 Mar 2023, Xiao Ni wrote: > > On Thu, Mar 30, 2023 at 5:52 AM NeilBrown <neilb@xxxxxxx> wrote: > > > > > > On Wed, 22 Mar 2023, NeilBrown wrote: > > > > On Wed, 22 Mar 2023, Xiao Ni wrote: > > > > > > > > > > > > > > Second, are there possibilities that the arguments "dev" and "name" of > > > > > function create_mddev > > > > > are null at the same time? > > > > > > > > No. For Build or Create, dev is never NULL. For Assemble and > > > > Incremental, name is never NULL. > > > > > > > > > > I should clarify this a bit. For Assemble and Incremental, "name" is > > > never NULL *but* it might be an empty string. > > > So: > > > if (name && name[0] == 0) > > > name = NULL; > > > > > > might cause it to become NULL. So you cannot assume there is always > > > either a valid "dev" or a valid "name". "dev" might be NULL, and "name" > > > might be "". > > > > > > NeilBrown > > > > > > > Hi Neil > > > > The input argument name should be the metadata name. For incremental > > and assemble, why are there possibilities that the metadata name is > > invalid? A raid device should have a valid metadata name, right? > > "should" do, yes. But you can never completely trust data on disk. It > is safest to be prepared for "name" being "". > > NeilBrown > That's right, thanks for this explanation :) -- Best Regards Xiao Ni