fs/fs_dup2: correct check before dup
Change-Id: I2387ab447f0d8ed9429960922a72de35b2730acb Signed-off-by: Jiuzhu Dong <dongjiuzhu1@xiaomi.com>
This commit is contained in:
parent
f57ba35151
commit
554310bd78
|
@ -88,14 +88,17 @@ int file_dup2(FAR struct file *filep1, FAR struct file *filep2)
|
||||||
* can maintain the correct open counts.
|
* can maintain the correct open counts.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (inode->u.i_ops && inode->u.i_ops->open)
|
if (inode->u.i_ops)
|
||||||
{
|
{
|
||||||
#ifndef CONFIG_DISABLE_MOUNTPOINT
|
#ifndef CONFIG_DISABLE_MOUNTPOINT
|
||||||
if (INODE_IS_MOUNTPT(inode))
|
if (INODE_IS_MOUNTPT(inode))
|
||||||
{
|
{
|
||||||
/* Dup the open file on the in the new file structure */
|
/* Dup the open file on the in the new file structure */
|
||||||
|
|
||||||
ret = inode->u.i_mops->dup(filep1, &temp);
|
if (inode->u.i_mops->dup)
|
||||||
|
{
|
||||||
|
ret = inode->u.i_mops->dup(filep1, &temp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
|
@ -103,7 +106,11 @@ int file_dup2(FAR struct file *filep1, FAR struct file *filep2)
|
||||||
/* (Re-)open the pseudo file or device driver */
|
/* (Re-)open the pseudo file or device driver */
|
||||||
|
|
||||||
temp.f_priv = filep1->f_priv;
|
temp.f_priv = filep1->f_priv;
|
||||||
ret = inode->u.i_ops->open(&temp);
|
|
||||||
|
if (inode->u.i_ops->open)
|
||||||
|
{
|
||||||
|
ret = inode->u.i_ops->open(&temp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Handle open failures */
|
/* Handle open failures */
|
||||||
|
|
Loading…
Reference in New Issue